0001159167-19-000029.txt : 20190801 0001159167-19-000029.hdr.sgml : 20190801 20190801160806 ACCESSION NUMBER: 0001159167-19-000029 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 71 CONFORMED PERIOD OF REPORT: 20190629 FILED AS OF DATE: 20190801 DATE AS OF CHANGE: 20190801 FILER: COMPANY DATA: COMPANY CONFORMED NAME: IROBOT CORP CENTRAL INDEX KEY: 0001159167 STANDARD INDUSTRIAL CLASSIFICATION: HOUSEHOLD APPLIANCES [3630] IRS NUMBER: 770259335 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-36414 FILM NUMBER: 19992721 BUSINESS ADDRESS: STREET 1: 8 CROSBY DRIVE CITY: BEDFORD STATE: MA ZIP: 01730 BUSINESS PHONE: 781-430-3000 MAIL ADDRESS: STREET 1: 8 CROSBY DRIVE CITY: BEDFORD STATE: MA ZIP: 01730 10-Q 1 irbt-201962910q.htm 10-Q Document
false--12-28Q22019000115916730035000240180000.010.011000000001000000002778800028123000277880002812300050000005000000 0001159167 2018-12-30 2019-06-29 0001159167 2019-07-27 0001159167 2019-06-29 0001159167 2018-12-29 0001159167 2019-03-31 2019-06-29 0001159167 2018-04-01 2018-06-30 0001159167 2017-12-31 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-12-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-12-30 2019-06-29 0001159167 us-gaap:CommonStockMember 2018-12-30 2019-06-29 0001159167 us-gaap:RetainedEarningsMember 2018-12-29 0001159167 us-gaap:RetainedEarningsMember 2018-12-30 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-06-29 0001159167 us-gaap:RetainedEarningsMember 2019-06-29 0001159167 us-gaap:CommonStockMember 2018-12-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-12-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-12-30 2019-06-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-06-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-03-31 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-03-30 0001159167 us-gaap:RetainedEarningsMember 2019-03-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-03-31 2019-06-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-03-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-03-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-03-31 2019-06-29 0001159167 2019-03-30 0001159167 us-gaap:RetainedEarningsMember 2019-03-31 2019-06-29 0001159167 us-gaap:CommonStockMember 2017-12-31 2018-06-30 0001159167 2018-06-30 0001159167 us-gaap:CommonStockMember 2017-12-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2017-12-31 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2017-12-31 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2017-12-31 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2018-06-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2017-12-30 0001159167 us-gaap:CommonStockMember 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2017-12-30 0001159167 2017-12-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2017-12-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-03-31 0001159167 us-gaap:CommonStockMember 2018-03-31 0001159167 us-gaap:CommonStockMember 2018-04-01 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-04-01 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2018-03-31 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-04-01 2018-06-30 0001159167 2018-03-31 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-03-31 0001159167 us-gaap:RetainedEarningsMember 2018-04-01 2018-06-30 0001159167 country:US 2017-12-31 2018-06-30 0001159167 us-gaap:EMEAMember 2018-04-01 2018-06-30 0001159167 irbt:AllOtherRegionsMember 2017-12-31 2018-06-30 0001159167 irbt:AllOtherRegionsMember 2019-03-31 2019-06-29 0001159167 country:US 2018-04-01 2018-06-30 0001159167 us-gaap:EMEAMember 2019-03-31 2019-06-29 0001159167 country:US 2019-03-31 2019-06-29 0001159167 country:US 2018-12-30 2019-06-29 0001159167 us-gaap:EMEAMember 2017-12-31 2018-06-30 0001159167 us-gaap:EMEAMember 2018-12-30 2019-06-29 0001159167 irbt:AllOtherRegionsMember 2018-12-30 2019-06-29 0001159167 irbt:AllOtherRegionsMember 2018-04-01 2018-06-30 0001159167 2018-12-30 0001159167 us-gaap:NoncompeteAgreementsMember 2019-06-29 0001159167 us-gaap:TradeNamesMember 2018-12-29 0001159167 us-gaap:CustomerRelatedIntangibleAssetsMember 2019-06-29 0001159167 us-gaap:PatentedTechnologyMember 2018-12-29 0001159167 us-gaap:DistributionRightsMember 2019-06-29 0001159167 us-gaap:CustomerRelatedIntangibleAssetsMember 2018-12-29 0001159167 us-gaap:NoncompeteAgreementsMember 2018-12-29 0001159167 us-gaap:PatentedTechnologyMember 2019-06-29 0001159167 us-gaap:TradeNamesMember 2019-06-29 0001159167 us-gaap:DistributionRightsMember 2018-12-29 0001159167 us-gaap:CostOfSalesMember 2019-06-29 0001159167 us-gaap:OperatingExpenseMember 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2018-04-01 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2019-03-31 2019-06-29 0001159167 us-gaap:OtherNoncurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherNoncurrentLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherNoncurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherNoncurrentLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2018-12-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2018-04-01 2018-06-30 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2019-03-31 2019-06-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2018-12-30 2019-06-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2017-12-31 2018-06-30 0001159167 us-gaap:NondesignatedMember 2019-06-29 0001159167 us-gaap:NondesignatedMember 2018-12-29 0001159167 us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2019-03-31 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2018-04-01 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2019-03-31 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2018-04-01 2018-06-30 0001159167 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 2018-02-27 0001159167 2017-12-31 2018-12-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2019-03-31 2019-06-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2018-12-30 2019-06-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2018-04-01 2018-06-30 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2017-12-31 2018-06-30 xbrli:pure irbt:segment xbrli:shares iso4217:USD xbrli:shares iso4217:USD
 
 
 

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
WASHINGTON, D.C. 20549
______________________________________________ 
FORM 10-Q
 ______________________________________________
QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
FOR THE QUARTERLY PERIOD ENDED June 29, 2019
OR
TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
FOR THE TRANSITION PERIOD FROM              TO             
COMMISSION FILE NUMBER 001-36414
______________________________________________ 
iROBOT CORPORATION
(Exact name of registrant as specified in its charter)
 ______________________________________________
Delaware
77-0259335
(State or other jurisdiction of
incorporation or organization)
(I.R.S. Employer
Identification No.)
8 Crosby Drive
Bedford, MA 01730
(Address of principal executive offices)

(781) 430-3000
(Registrant’s telephone number, including area code)

Securities registered pursuant to Section 12(b) of the Act:
Title of each class
Trading Symbol(s)
Name of each exchange on which registered
Common Stock, $0.01 par value
IRBT
The NASDAQ Stock Market LLC
______________________________________________ 
Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.    Yes  x    No  o
Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).    Yes  x    No  o
Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.

 
 
 
 
 
        

 
 
 

Large accelerated filer
Accelerated filer
 
 
 
 
Non-accelerated filer
Smaller reporting company
 
 
 
 
 
 
Emerging growth company
If an emerging growth company, 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. o    
Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).    Yes      No  x 
The number of shares outstanding of the Registrant’s Common Stock as of July 27, 2019 was 28,123,937.

 
 
 
 
 
        




iROBOT CORPORATION
FORM 10-Q
FOR THE QUARTER ENDED JUNE 29, 2019
INDEX
 
Page
PART I: FINANCIAL INFORMATION
 
 
Item 1. Financial Statements (unaudited)
 
 
 
 
 

2






iROBOT CORPORATION
CONSOLIDATED BALANCE SHEETS
(in thousands, except per share amounts)
(unaudited)
 
 
June 29, 2019
 
December 29, 2018
ASSETS
Current assets:
 
 
 
Cash and cash equivalents
$
132,795

 
$
130,373

Short term investments
23,984

 
31,605

Accounts receivable, net
90,401

 
162,166

Inventory
192,010

 
164,633

Other current assets
41,960

 
25,660

   Total current assets
481,150

 
514,437

Property and equipment, net
71,728

 
57,026

Operating lease right-of-use assets
50,002

 

Deferred tax assets
33,862

 
36,979

Goodwill
120,538

 
118,896

Intangible assets, net
18,636

 
24,273

Other assets
25,099

 
15,350

   Total assets
$
801,015

 
$
766,961

LIABILITIES AND STOCKHOLDERS’ EQUITY
Current liabilities:
 
 
 
Accounts payable
$
86,848

 
$
136,742

Accrued expenses
63,629

 
71,259

Deferred revenue and customer advances
2,101

 
5,756

   Total current liabilities
152,578

 
213,757

Operating lease liabilities
58,068

 

Deferred tax liabilities
2,110

 
4,005

Other long-term liabilities
8,683

 
13,877

   Total long-term liabilities
68,861

 
17,882

   Total liabilities
221,439

 
231,639

Commitments and contingencies (Note 11)


 


Preferred stock, 5,000 shares authorized and none outstanding

 

Common stock, $0.01 par value, 100,000 shares authorized; 28,123 and 27,788 shares issued and outstanding, respectively
281

 
278

Additional paid-in capital
184,663

 
172,771

Retained earnings
396,748

 
367,021

Accumulated other comprehensive loss
(2,116
)
 
(4,748
)
   Total stockholders’ equity
579,576

 
535,322

   Total liabilities and stockholders’ equity
$
801,015

 
$
766,961

The accompanying notes are an integral part of the consolidated financial statements.

3




iROBOT CORPORATION
CONSOLIDATED STATEMENTS OF INCOME
(in thousands, except per share amounts)
(unaudited)
 
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Revenue
$
260,172

 
$
226,317

 
$
497,833

 
$
443,385

Cost of revenue:
 
 
 
 
 
 
 
Cost of product revenue
138,891

 
103,712

 
253,929

 
200,213

Amortization of acquired intangible assets
3,111

 
4,679

 
6,188

 
9,461

Total cost of revenue
142,002

 
108,391

 
260,117

 
209,674

Gross profit
118,170

 
117,926

 
237,716

 
233,711

Operating expenses:
 
 
 
 
 
 
 
Research and development
35,650

 
34,924

 
70,919

 
67,869

Selling and marketing
56,409

 
45,910

 
95,245

 
77,239

General and administrative
20,592

 
23,468

 
43,499

 
49,301

Amortization of acquired intangible assets
269

 
269

 
540

 
542

Total operating expenses
112,920

 
104,571

 
210,203

 
194,951

Operating income
5,250

 
13,355

 
27,513

 
38,760

Other income, net
1,533

 
1,507

 
2,813

 
2,026

Income before income taxes
6,783

 
14,862

 
30,326

 
40,786

Income tax (benefit) expense
(424
)
 
4,391

 
599

 
9,914

Net income
$
7,207

 
$
10,471

 
$
29,727

 
$
30,872

Net income per share:
 
 
 
 
 
 
 
Basic
$
0.26

 
$
0.38

 
$
1.06

 
$
1.11

Diluted
$
0.25

 
$
0.37

 
$
1.03

 
$
1.08

Number of shares used in per share calculations:
 
 
 
 
 
 
 
Basic
28,079

 
27,615

 
27,970

 
27,802

Diluted
28,763

 
28,337

 
28,779

 
28,658


The accompanying notes are an integral part of the consolidated financial statements.

4




iROBOT CORPORATION
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME
(in thousands)
(unaudited)
 
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Net income
$
7,207

 
$
10,471

 
$
29,727

 
$
30,872

Other comprehensive income (loss):
 
 
 
 
 
 
 
Net foreign currency translation adjustments
1,794

 
(11,123
)
 
(676
)
 
(5,785
)
Net unrealized gains (losses) on cash flow hedges, net of tax
(1,540
)
 
1,619

 
3,261

 
(232
)
Net (gains) losses on cash flow hedge reclassified into earnings, net of tax
(267
)
 
(169
)
 
(161
)
 
421

Net unrealized gains (losses) on marketable securities, net of tax
95

 
87

 
208

 
(85
)
Total comprehensive income
$
7,289

 
$
885

 
$
32,359

 
$
25,191

The accompanying notes are an integral part of the consolidated financial statements.

5




iROBOT CORPORATION
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY
(in thousands)
(unaudited)

 
Three Months Ended
 
Common Stock
 
Additional
Paid-In
Capital
 
Retained
Earnings
 
Accumulated
Other
Comprehensive
Income (Loss) ("AOCI")
 
Stockholders’
Equity
 
Shares
 
Value
 
Balance at March 30, 2019
28,038

 
$
280

 
$
175,000

 
$
389,541

 
$
(2,198
)
 
$
562,623

Issuance of common stock under employee stock plans
39

 

 
2,117

 
 
 
 
 
2,117

Vesting of restricted stock units
47

 
1

 
(1
)
 
 
 
 
 

Stock-based compensation
 
 
 
 
7,594

 
 
 
 
 
7,594

Stock withheld to cover tax withholdings requirements upon restricted stock vesting
(1
)
 

 
(65
)
 
 
 
 
 
(65
)
Other comprehensive income
 
 
 
 
 
 
 
 
82

 
82

Directors' deferred compensation
 
 
 
 
18

 
 
 
 
 
18

Net income
 
 
 
 
 
 
7,207

 
 
 
7,207

Balance at June 29, 2019
28,123

 
$
281

 
$
184,663

 
$
396,748

 
$
(2,116
)
 
$
579,576


 
Six Months Ended
 
Common Stock
 
Additional
Paid-In
Capital
 
Retained
Earnings
 
Accumulated
Other
Comprehensive
Income (Loss) ("AOCI")
 
Stockholders’
Equity
 
Shares
 
Value
 
Balance at December 29, 2018
27,788

 
$
278

 
$
172,771

 
$
367,021

 
$
(4,748
)
 
$
535,322

Issuance of common stock under employee stock plans
116

 
1

 
4,679

 

 

 
4,680

Vesting of restricted stock units
278

 
3

 
(3
)
 

 

 

Stock-based compensation


 


 
14,458

 

 

 
14,458

Stock withheld to cover tax withholdings requirements upon restricted stock vesting
(59
)
 
(1
)
 
(7,276
)
 

 

 
(7,277
)
Other comprehensive income


 


 


 

 
2,632

 
2,632

Directors' deferred compensation


 


 
34

 

 


 
34

Net income


 


 


 
29,727

 

 
29,727

Balance at June 29, 2019
28,123

 
$
281

 
$
184,663

 
$
396,748

 
$
(2,116
)
 
$
579,576

The accompanying notes are an integral part of the consolidated financial statements.








6




iROBOT CORPORATION
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY
(in thousands)
(unaudited)
 
Three Months Ended
 
Common Stock
 
Additional
Paid-In
Capital
 
Retained
Earnings
 
Accumulated
Other
Comprehensive
Income (Loss) ("AOCI")
 
Stockholders’
Equity
 
Shares
 
Value
 
Balance at March 31, 2018
28,073

 
$
280

 
$
191,021

 
$
299,430

 
$
5,897

 
$
496,628

Issuance of common stock under employee stock plans
56

 
1

 
2,205

 
 
 
 
 
2,206

Vesting of restricted stock units
43

 
1

 
(1
)
 
 
 
 
 

Stock-based compensation
 
 
 
 
6,431

 
 
 
 
 
6,431

Stock withheld to cover tax withholdings requirements upon restricted stock vesting
(1
)
 

 
(54
)
 
 
 
 
 
(54
)
Other comprehensive income
 
 
 
 
 
 
 
 
(9,587
)
 
(9,587
)
Directors' deferred compensation
 
 
 
 
16

 
 
 
 
 
16

Share repurchases
(769
)
 
(8
)
 
(48,062
)
 
 
 
 
 
(48,070
)
Net income
 
 
 
 
 
 
10,471

 
 
 
10,471

Balance at June 30, 2018
27,402

 
$
274

 
$
151,556

 
$
309,901

 
$
(3,690
)
 
$
458,041


 
Six Months Ended
 
Common Stock
 
Additional
Paid-In
Capital
 
Retained
Earnings
 
Accumulated
Other
Comprehensive
Income (Loss) ("AOCI")
 
Stockholders’
Equity
 
Shares
 
Value
 
Balance at December 30, 2017
27,945

 
$
279

 
$
190,067

 
$
277,989

 
$
1,992

 
$
470,327

Issuance of common stock under employee stock plans
67

 
1

 
2,604

 
 
 
 
 
2,605

Vesting of restricted stock units
240

 
2

 
(2
)
 
 
 
 
 

Stock-based compensation
 
 
 
 
12,377

 
 
 
 
 
12,377

Stock withheld to cover tax withholdings requirements upon restricted stock vesting
(51
)
 

 
(3,532
)
 
 
 
 
 
(3,532
)
Other comprehensive income
 
 
 
 
 
 
 
 
(5,682
)
 
(5,682
)
Directors' deferred compensation
 
 
 
 
34

 
 
 
 
 
34

Share repurchases
(799
)
 
(8
)
 
(49,992
)
 
 
 
 
 
(50,000
)
Cumulative effect of a change in accounting principle related to adoption of ASC 606
 
 
 
 
 
 
1,040

 
 
 
1,040

Net income
 
 
 
 
 
 
30,872

 
 
 
30,872

Balance at June 30, 2018
27,402

 
$
274

 
$
151,556

 
$
309,901

 
$
(3,690
)
 
$
458,041

The accompanying notes are an integral part of the consolidated financial statements.


7




iROBOT CORPORATION
CONSOLIDATED STATEMENTS OF CASH FLOWS
(in thousands)
(unaudited)
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
Cash flows from operating activities:
 
 
 
Net income
$
29,727

 
$
30,872

Adjustments to reconcile net income to net cash provided by operating activities, net of the effects of acquisition:
 
 
 
Depreciation and amortization
17,905

 
17,606

Stock-based compensation
14,458

 
12,377

Deferred income taxes, net
535

 
(4,208
)
Other
3,106

 
384

Changes in operating assets and liabilities — (use) source
 
 
 
Accounts receivable
67,808

 
66,085

Inventory
(27,112
)
 
(10,303
)
Other current assets
(14,246
)
 
(12,764
)
Accounts payable
(52,835
)
 
(46,519
)
Accrued expenses and other liabilities
(18,043
)
 
(27,211
)
Net cash provided by operating activities
21,303

 
26,319

Cash flows from investing activities:
 
 
 
Additions of property and equipment
(14,705
)
 
(14,284
)
Change in other assets
(4,541
)
 
(1,837
)
Proceeds from sale of equity investment

 
629

Cash paid for business acquisition, net of cash acquired
(2,817
)
 

Purchases of investments

 
(6,438
)
Sales and maturities of investments
5,880

 
7,000

Net cash used in investing activities
(16,183
)
 
(14,930
)
Cash flows from financing activities:
 
 
 
Proceeds from employee stock plans
4,680

 
2,605

Income tax withholding payment associated with restricted stock vesting
(7,277
)
 
(3,532
)
Stock repurchases

 
(50,000
)
Net cash used in financing activities
(2,597
)
 
(50,927
)
Effect of exchange rate changes on cash and cash equivalents
(101
)
 
(314
)
Net increase (decrease) in cash and cash equivalents
2,422

 
(39,852
)
Cash and cash equivalents, at beginning of period
130,373

 
128,635

Cash and cash equivalents, at end of period
$
132,795

 
$
88,783

Supplemental disclosure of cash flow information:
 
 
 
Non-cash investing and financing activities:
 
 
 
Additions of property and equipment included in accounts payable
$
4,746

 
$
1,537

The accompanying notes are an integral part of the consolidated financial statements.

8




iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS
(unaudited)
1. Description of Business
iRobot Corporation ("iRobot" or the "Company") designs and builds robots that empower people to do more. The Company develops robotic technology and applies it to produce and market consumer robots. The Company’s revenue is primarily generated from product sales through distributor and retail sales channels, as well as its on-line stores.
2. Summary of Significant Accounting Policies
Basis of Presentation
The accompanying consolidated financial statements include those of iRobot and its subsidiaries, after elimination of all intercompany balances and transactions. iRobot has prepared the accompanying unaudited consolidated financial statements in conformity with accounting principles generally accepted in the United States of America ("GAAP"). In addition, certain prior year amounts have been reclassified to conform to the current year presentation.
In the opinion of management, all adjustments necessary to the unaudited interim consolidated financial statements have been made to state fairly the Company's financial position. Interim results are not necessarily indicative of results for the full fiscal year or any future periods. The information included in this Form 10-Q should be read in conjunction with the Company's audited consolidated financial statements and notes thereto included in its Annual Report on Form 10-K for the fiscal year ended December 29, 2018, filed with the Securities and Exchange Commission on February 14, 2019.
The Company operates and reports using a 52-53 week fiscal year ending on the Saturday closest to December 31. Accordingly, the Company’s fiscal quarters end on the Saturday that falls closest to the last day of the third month of each quarter.
Use of Estimates
The preparation of these financial statements in conformity with GAAP requires the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition, including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs; valuation of goodwill and acquired intangible assets; valuation of financial instruments; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. The Company bases these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that the Company believes are reasonable under the circumstances. Actual results may differ from the Company’s estimates.
Other Assets
The Company holds non-marketable equity securities as part of its strategic investments portfolio. The Company classifies its cost method investments as equity securities without readily determinable fair values and measures these investments at cost, less any impairment, adjusted for observable price changes. At June 29, 2019 and December 29, 2018, other assets consisted primarily of equity securities without readily determinable fair values and an equity method investment totaling $21.6 million and $15.1 million, respectively.
Net Income Per Share
Basic income per share is calculated using the Company's weighted-average outstanding common shares. Diluted income
per share is calculated using the Company's weighted-average outstanding common shares including the dilutive effect of stock
awards as determined under the treasury stock method.


9

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

The following table presents the calculation of both basic and diluted net income per share (in thousands, except per share amounts): 
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Net income
$
7,207

 
$
10,471

 
$
29,727

 
$
30,872

Weighted-average common shares outstanding
28,079

 
27,615

 
27,970

 
27,802

Dilutive effect of employee stock awards
684

 
722

 
809

 
856

Diluted weighted-average common shares outstanding
28,763

 
28,337

 
28,779

 
28,658

Basic income per share
$
0.26

 
$
0.38

 
$
1.06

 
$
1.11

Diluted income per share
$
0.25

 
$
0.37

 
$
1.03

 
$
1.08

Employee stock awards representing approximately 0.2 million shares of common stock for the three months ended June 29, 2019 and June 30, 2018, and approximately 0.1 million shares of common stock for the six months ended June 29, 2019 and June 30, 2018, were excluded from the computation of diluted earnings per share as their effect would have been antidilutive.
Recently Adopted Accounting Standards
In June 2018, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2018-07, "Compensation - Stock Compensation: Improvements to Nonemployee Share-Based Payment Accounting (Topic 718)." The amendments in ASU No. 2018-07 expand the scope of Topic 718 to include share-based payments issued to nonemployees for goods or services. The amendments in this ASU are effective for annual periods beginning after December 15, 2018 and interim periods within those annual periods, with early adoption permitted. The Company adopted this standard effective December 30, 2018 which did not have a material impact on the Company's consolidated financial statements and related disclosures.
In February 2016, the FASB issued ASU No. 2016-02 "Leases." This ASU and subsequently issued amendments require lessees to recognize the assets and liabilities on their balance sheet for the rights and obligations created by most leases and continue to recognize expenses on their income statements over the lease term. The standard also requires disclosures designed to give financial statement users information on the amount, timing and uncertainty of cash flows arising from leases. In July 2018, the FASB issued ASU No. 2018-11, "Leases (Topic 842): Targeted Improvements," which provides an alternative transition method that entities can elect when adopting the new standard. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company adopted the standard effective December 30, 2018 using the alternative transition method which resulted in the recognition of operating lease right-of-use assets and operating lease liabilities of approximately $52.8 million and $67.3 million, respectively. The Company's consolidated financial statements as of and for the three and six months ended June 29, 2019 are presented under the new standard, while the comparative quarter presented is not adjusted and continues to be reported in accordance with the historical accounting policy. See Note 4, "Leases," for the required disclosures related to the impact of adopting this standard and a discussion of the Company's updated policies related to lease accounting.
Recently Issued Accounting Standards
In August 2018, the FASB issued ASU No. 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software." The new standard aligns 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 (and hosting arrangements that include an internal use software license). The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019, with early adoption permitted. Implementation should be applied either retrospectively or prospectively to all implementation costs incurred after the date of adoption. The Company is currently evaluating the impact of the standard on its consolidated financial statements.
In August 2018, the FASB issued ASU No. 2018-13, "Fair Value Measurement: Disclosure Framework—Changes to the Disclosure Requirements for Fair Value Measurement." The amendment modifies disclosure requirements related to fair value measurement. The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019. Implementation on a prospective or retrospective basis varies by specific disclosure requirement. Early adoption is permitted. The standard also allows for early adoption of any removed or modified disclosures upon issuance of this ASU while delaying adoption of the additional disclosures until their effective date. The Company does not believe this amendment will have a material impact on its consolidated financial statements.
In June 2016, the FASB issued ASU No. 2016-13, "Measurement of Credit Losses on Financial Instruments," as clarified in ASU No. 2019-04 and ASU No. 2019-05. The guidance amends the impairment model by requiring entities to use a forward-

10

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

looking approach based on expected losses rather than incurred losses to estimate credit losses on certain types of financial instruments. This may result in the earlier recognition of allowances for losses. The guidance is effective for fiscal years beginning after December 15, 2019, including interim periods within those fiscal years, with early adoption permitted. The Company is currently evaluating the impact of the standards on its consolidated financial statements. 
From time to time, new accounting pronouncements are issued by FASB that are adopted by the Company as of the specified effective date. Unless otherwise discussed, the Company believes that recently issued standards, which are not yet effective, will not have a material impact on the Company’s consolidated financial statements upon adoption.

3. Revenue Recognition
The Company primarily derives its revenue from product sales. The Company sells products directly to consumers through on-line stores and indirectly through resellers and distributors. Revenue is recognized upon transfer of control of promised products or services to customers, generally as title and risk of loss passes, in an amount that reflects the consideration the Company expects to receive in exchange for those products or services. Taxes collected from customers, which are subsequently remitted to governmental authorities, are excluded from revenue. Shipping and handling expenses are considered fulfillment activities and are expensed as incurred.
The Company’s product portfolio includes various consumer robots, many of which are Wi-Fi connected. The consumer robots are generally highly dependent on, and interrelated with, the embedded software and cannot function without the software. As such, the consumer robots are accounted for as a single performance obligation, and the revenue is recognized at a point in time when the control is transferred to distributors, resellers or directly to end customers through on-line stores. For consumer robots with Wi-Fi capability ("connected robots"), each sale represents an arrangement with multiple promises consisting of the robot, an app, cloud services and potential future unspecified software upgrades. The Company has determined that the app, cloud services and potential future unspecified software upgrades represent one promised service to the customer to enhance the functionality and interaction with the robot (referred to collectively as "Cloud Services"). For certain connected robots, the Company has concluded that, on a quantitative and qualitative basis, the Cloud Services do not constitute a material performance obligation and, as such, these services are not considered a separate performance obligation that requires allocation of transaction price.
During the third quarter of 2018, the Company launched Roomba i7 and i7+ which brought a new level of intelligence and automation to robotic vacuum cleaners with the ability to learn, map and adapt to a home's floor plan. The Company has concluded that beginning with this launch, the Cloud Services related to these new products are a material performance obligation. For contracts that contain multiple performance obligations, the transaction price is allocated to each performance obligation based on a relative standalone selling price ("SSP"). The SSP reflects the Company's best estimate of what the selling prices of performance obligations would be if they were sold regularly on a standalone basis. Revenue allocated to the robots is recognized at a point in time when control is transferred. Revenue allocated to the Cloud Services is deferred and recognized on a straight-line basis over the estimated period the software upgrades and services are expected to be provided. For contracts with a duration of greater than one year, the transaction price allocated to performance obligations that are unsatisfied as of June 29, 2019 is not material. The Company does not disclose the value of unsatisfied performance obligations for contracts with an original expected duration of one year or less.
The Company’s products generally carry a one-year limited warranty that promises customers that delivered products are as specified. The Company does not consider these assurance-type warranties as a separate performance obligation and therefore, the Company accounts for such warranties under ASC 460, "Guarantees."
Significant Judgments
The Company provides limited rights of returns for direct-to-consumer sales generated through its on-line stores and certain resellers and distributors. In addition, the Company may provide other credits or incentives, including price protection, which are accounted for as variable consideration when estimating the amount of revenue to recognize. Where appropriate, these estimates take into consideration relevant factors such as the Company’s historical experience, current contractual requirements, specific known market events and trends and forecasted customer buying and payment patterns. Overall, these reserves reflect the Company’s best estimates, and the actual amounts of consideration ultimately received may differ from the Company’s estimates. Returns and credits are estimated at contract inception and updated at the end of each reporting period as additional information becomes available and only to the extent that it is probable that a significant reversal of any incremental revenue will not occur. As of June 29, 2019, the Company has reserves for product returns of $44.5 million and other credits and incentives of $69.7 million. As of December 29, 2018, the Company had reserves for product returns of $53.9 million and other credits and incentives of $97.7 million. Revenue recognized during the three months ended June 29, 2019 and June 30, 2018 related to performance obligations satisfied in a prior period was not material.

11

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

Disaggregation of Revenue
The following table provides information about disaggregated revenue by geographical region (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
United States
$
124,472

 
$
111,526

 
$
238,537

 
$
218,388

EMEA
82,893

 
70,123

 
157,462

 
139,710

Other
52,807

 
44,668

 
101,834

 
85,287

Total revenue
$
260,172

 
$
226,317

 
$
497,833

 
$
443,385


Contract Balances
The following table provides information about receivables and contract liabilities from contracts with customers (in thousands):
 
June 29, 2019
 
December 29, 2018
Accounts receivable, net
$
90,401

 
$
162,166

Contract liabilities
3,075

 
5,756

The Company invoices customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract liabilities primarily relate to prepayments received from customers in advance of product shipments. The change in the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and the customer’s payment. During the three months ended June 29, 2019 and June 30, 2018, the Company recognized $5.3 million and $6.3 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. During the six months ended June 29, 2019 and June 30, 2018, the Company recognized $5.8 million and $6.7 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. The Company does not assess whether a prepayment received represents a significant financing component as the period between when the payment is received and the transfer of the products to the customer is generally one year or less.

4. Leases
The Company's leasing arrangements primarily consist of operating leases for its facilities which include corporate, sales and research and development offices. For leases with terms greater than 12 months, the Company records the related right-of-use asset and lease obligation at the present value of lease payments over the term. The Company's leases typically include rental escalation clauses, renewal options and/or termination options that are factored into the determination of lease payments when appropriate. The Company does not separate lease and nonlease components of contracts and excludes all variable lease payments from the measurement of right-of-use assets and lease liabilities. The Company's variable lease payments generally include usage based nonlease components. The Company's lease agreements do not contain any residual value guarantees or restrictive covenants. Leases with an initial term of 12 months or less are not recorded on the balance sheet; lease expense is recognized on a straight-line basis over the lease term.
The Company's existing leases do not provide a readily determinable implicit rate. Therefore, the Company estimates its incremental borrowing rate to discount the lease payments based on information available at December 30, 2018 (date of initial application) or the lease commencement date for existing leases upon adoption or new leases post adoption, respectively. At June 29, 2019, the Company's weighted average discount rate was 3.61%, while the weighted average remaining lease term was 9.58 years.
The components of lease expense were as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Operating lease cost
$
1,969

 
$
3,939

Variable lease cost
1,316

 
2,136

Total lease cost
$
3,285

 
$
6,075



12

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

Supplemental cash flow information related to leases was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Cash paid for amounts included in the measurement of lease liabilities:
 
 
 
Operating cash flows from operating leases
$
2,865

 
$
4,881

Right-of-use assets obtained in exchange for lease obligations:
 
 
 
Operating leases
$

 
$
52,767


Maturities of operating lease liabilities were as follows as of June 29, 2019 (in thousands):
 
Operating leases
Remainder of 2019
$
3,435

2020
8,543

2021
8,255

2022
7,580

2023
7,127

Thereafter
41,198

Total minimum lease payments
$
76,138

Less: imputed interest
12,548

Present value of future minimum lease payments
$
63,590

Less: current portion of operating lease liabilities (Note 7)
5,522

Long-term lease liabilities
$
58,068



Financial Statement Impact of Adopting ASC 842
The Company adopted ASC 842 effective December 30, 2018 using the alternative transition method. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company elected the package of practical expedients permitted under the transition guidance, which allowed the Company to carryforward its historical assessments of (1) whether contracts are or contain leases, (2) lease classification and (3) initial direct costs. In addition, the Company elected the practical expedient to use hindsight in determining lease term. The adoption of the new standard resulted in the recognition of right-of-use assets and lease liabilities of approximately $52.8 million and $67.3 million, respectively. The standard did not materially impact the Company's consolidated income or cash flows.

5. Inventory
Inventory consists of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
Raw materials
$
2,922

 
$
2,992

Finished goods
189,088

 
161,641

 
$
192,010

 
$
164,633




13

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

6. Goodwill and Other Intangible Assets
The following table summarizes the activity in the carrying amount of goodwill for the six months ended June 29, 2019 (in thousands):
Balance as of December 29, 2018
$
118,896

Acquisition
2,050

Effect of foreign currency translation
(408
)
Balance as of June 29, 2019
$
120,538



Intangible assets at June 29, 2019 and December 29, 2018 consisted of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
 
Cost
 
Accumulated
Amortization
 
Net
 
Cost
 
Accumulated
Amortization
 
Net
Completed technology
$
28,100

 
$
23,396

 
$
4,704

 
$
26,900

 
$
21,607

 
$
5,293

Tradename
100

 
100

 

 
100

 
100

 

Customer relationships
11,255

 
1,859

 
9,396

 
11,291

 
1,365

 
9,926

Reacquired distribution rights
32,347

 
27,921

 
4,426

 
32,499

 
23,598

 
8,901

Non-competition agreements
262

 
152


110

 
263

 
110

 
153

Total
$
72,064

 
$
53,428

 
$
18,636

 
$
71,053

 
$
46,780

 
$
24,273


Amortization expense related to acquired intangible assets was $3.4 million and $4.9 million for the three months ended June 29, 2019 and June 30, 2018, respectively. Amortization expense related to acquired intangible assets was $6.7 million and $10.0 million for the six months ended June 29, 2019 and June 30, 2018, respectively.
The estimated future amortization expense related to current intangible assets in each of the five succeeding fiscal years is expected to be as follows (in thousands):
 
Cost of Revenue
 
Operating Expenses
 
Total
Remainder of 2019
$
5,635

 
$
497

 
$
6,132

2020
1,140

 
1,016

 
2,156

2021
1,140

 
792

 
1,932

2022
915

 
792

 
1,707

2023
240

 
792

 
1,032

Thereafter
60

 
5,617

 
5,677

Total
$
9,130

 
$
9,506

 
$
18,636




14

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

7. Accrued Expenses
Accrued expenses consisted of the following at (in thousands):
 
June 29, 2019
 
December 29, 2018
Accrued other compensation
$
12,241

 
$
10,518

Accrued warranty
11,970

 
11,964

Accrued direct fulfillment costs
9,543

 
5,372

Accrued bonus
6,914

 
21,226

Current portion of operating lease liabilities
5,522

 

Accrued sales and other indirect taxes payable
4,931

 
11,397

Accrued income taxes
2,547

 
1,936

Accrued accounting fees
2,020

 
2,052

Accrued other
7,941

 
6,794

 
$
63,629

 
$
71,259



8. Derivative Instruments
The Company operates internationally and, in the normal course of business, is exposed to fluctuations in foreign currency exchange rates. The foreign currency exposures typically arise from transactions denominated in currencies other than the functional currency of the Company's operations, primarily the Japanese Yen, Canadian Dollar, British Pound and the Euro. The Company uses derivative instruments that are designated in cash flow hedge relationships to reduce or eliminate the effects of foreign exchange rate changes on sales and purchases. These contracts typically have maturities of thirty-seven months or less. At June 29, 2019 and December 29, 2018, the Company had outstanding cash flow hedges with a total notional value of $389.9 million and $366.7 million, respectively.
The Company also enters into economic hedges that are not designated as hedges from an accounting standpoint to reduce or eliminate the effects of foreign exchange rate changes typically related to short term trade receivables and payables. These contracts typically have maturities of ten months or less. At June 29, 2019 and December 29, 2018, the Company had outstanding economic hedges with a total notional value of $48.0 million and $56.0 million, respectively.
The fair values of derivative instruments are as follows (in thousands):
 
 
 
Fair Value
 
Classification
 
June 29, 2019
 
December 29, 2018
Derivatives not designated as hedging instruments:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
480

 
$
551

Foreign currency forward contracts
Accrued expenses
 
598

 

Derivatives designated as cash flow hedges:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
1,201

 
$
53

Foreign currency forward contracts
Other assets
 
3,454

 
172

Foreign currency forward contracts
Accrued expenses
 
1,102

 
335

Foreign currency forward contracts
Long-term liabilities
 
833

 
795


Gains (losses) associated with derivative instruments not designated as hedging instruments are as follows (in thousands):
 
 
 
Three Months Ended
 
Six Months Ended
 
Classification
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Gain (loss) recognized in income
Other income, net
 
$
(1,085
)
 
$
1,707

 
$
(652
)
 
$
538



15

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): 
 
 
Gain (loss) recognized in OCI on Derivative (1)
 
 
Three Months Ended
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Foreign currency forward contracts
 
$
(2,054
)
 
$
2,154

 
$
4,350

 
$
(560
)

(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Three Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
260,172

 
$
142,002

 
$
226,317

 
$
108,391

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
359

 
$

 
$
(113
)
 
$
370


 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
497,833

 
$
260,117

 
$
443,385

 
$
209,674

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
214

 
$

 
$
(279
)
 
$
(386
)




16

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

9. Fair Value Measurements
The Company’s financial assets and liabilities measured at fair value on a recurring basis at June 29, 2019, were as follows (in thousands):
 
Fair Value Measurements as of
June 29, 2019

Level 1
 
Level 2 (1)
 
Level 3 (2)
Assets:
 
 
 
 
 
Corporate and government bonds, $24,018 at cost (3)
$

 
$
23,984

 
$

Derivative instruments (Note 8)

 
5,135

 

Total assets measured at fair value
$

 
$
29,119

 
$

 
 
 
 
 
 
Liabilities:
 
 
 
 
 
Derivative instruments (Note 8)
$

 
$
2,533

 
$

Total liabilities measured at fair value
$

 
$
2,533

 
$


The Company’s financial assets and liabilities measured at fair value on a recurring basis at December 29, 2018, were as follows (in thousands):
 
Fair Value Measurements as of
December 29, 2018
 
Level 1
 
Level 2 (1)
 
Level 3 (2)
Assets:
 
 
 
 
 
Money market funds
$
3,730

 
$

 
$

Corporate and government bonds, $30,035 at cost

 
29,605

 

Convertible note

 

 
2,000

Derivative instruments (Note 8)

 
776

 

Total assets measured at fair value
$
3,730

 
$
30,381

 
$
2,000

 
 
 
 
 
 
Liabilities:
 
 
 
 
 
Derivative instruments (Note 8)
$

 
$
1,130

 
$

Total liabilities measured at fair value
$

 
$
1,130

 
$

(1)
Level 2 fair value estimates are based on observable inputs other than quoted prices in active markets for identical assets and liabilities, quoted prices for identical or similar assets or liabilities in inactive markets, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
(2)
Level 3 fair value estimates are based on inputs that are generally unobservable and typically reflect management’s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques, including option pricing and discounted cash flow models. Unobservable inputs used in the models are significant to the fair values of the assets and liabilities.
(3)
As of June 29, 2019, the Company’s investments had maturity dates ranging from August 2019 to March 2021.
    
The following table provides a summary of changes in fair value of our Level 3 investment for the six months ended June 29, 2019 (in thousands):
Balance as of December 29, 2018
$
2,000

Conversion of convertible note
(2,000
)
Balance as of June 29, 2019
$






17

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

10. Stockholders' Equity
Share Repurchase Activity
On February 27, 2018, the Company's board of directors approved a stock repurchase program authorizing up to $50.0 million in share repurchases. This share repurchase program commenced on March 28, 2018 with an expiration date of December 28, 2018. As of June 30, 2018, the Company completed the repurchase program and repurchased 798,794 shares of common stock totaling $50.0 million.

11. Commitments and Contingencies
Legal Proceedings
From time to time and in the ordinary course of business, the Company is subject to various claims, charges and litigation. The outcome of litigation cannot be predicted with certainty and some lawsuits, claims or proceedings may be disposed of unfavorably to us, which could materially affect our financial condition or results of operations.
Outstanding Purchase Orders
At June 29, 2019, the Company had outstanding purchase orders aggregating approximately $213.0 million. These purchase orders, the majority of which are with contract manufacturers for the purchase of inventory in the normal course of business, are for manufacturing and non-manufacturing related goods and services, and are generally cancelable without penalty. In circumstances where the Company determines that it has financial exposure associated with any of these commitments, the Company records a liability in the period in which that exposure is identified.
Guarantees and Indemnification Obligations
The Company enters into standard indemnification agreements in the ordinary course of business. Pursuant to these agreements, the Company indemnifies and agrees to reimburse the indemnified party for losses incurred by the indemnified party, generally the Company’s customers, in connection with any patent, copyright, trade secret or other proprietary right infringement claim by any third party. The term of these indemnification agreements is generally perpetual any time after execution of the agreement. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited. The Company has never incurred costs to defend lawsuits or settle claims related to these indemnification agreements. As a result, the Company believes the estimated fair value of these agreements is minimal. Accordingly, the Company has no liabilities recorded for these agreements as of June 29, 2019 and December 29, 2018, respectively.
Warranty
The Company provides warranties on most products and has established a reserve for warranty obligations based on estimated warranty costs. The reserve is included as part of accrued expenses (Note 7) in the accompanying consolidated balance sheets.    
Activity related to the warranty accrual was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Balance at beginning of period
$
11,628

 
$
11,833

 
$
11,964

 
$
11,264

Provision
2,682

 
2,193

 
5,333

 
4,628

Warranty usage
(2,340
)
 
(2,793
)
 
(5,327
)
 
(4,659
)
Balance at end of period
$
11,970

 
$
11,233

 
$
11,970

 
$
11,233



12. Income Taxes
The Company’s effective income tax rate for the three months ended June 29, 2019 and June 30, 2018, was (6.3)% and 29.6%, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit in the three months ended June 29, 2019. In addition, the Company recorded a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.
The Company's effective income tax rate of (6.3)% for the three months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit.

18

iROBOT CORPORATION
NOTES TO CONSOLIDATED FINANCIAL STATEMENTS - (continued)

The Company’s effective income tax rate for the six months ended June 29, 2019 and June 30, 2018, was 2.0% and 24.3%, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and a decrease in foreign taxes related to a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.
The Company's effective income tax rate of 2.0% for the six months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation.
13. Industry Segment, Geographic Information and Significant Customers
The Company operates as one operating segment. The Company's consumer robots products are offered to consumers through distributor and retail sales channels, as well as its on-line stores.
Significant Customers
For the three months ended June 29, 2019 and June 30, 2018, the Company generated 28.0% and 23.8% of total revenue, respectively, from one of its retailers (Amazon).
For the six months ended June 29, 2019 and June 30, 2018, the Company generated 22.3% and 17.7% of total revenue, respectively, from one of its retailers (Amazon).

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

The information contained in this section has been derived from our consolidated financial statements and should be read together with our consolidated financial statements and related notes included elsewhere in this Quarterly Report on Form 10-Q. This Quarterly Report on Form 10-Q contains forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities and Exchange Act of 1934, as amended, or the Exchange Act, and are subject to the "safe harbor" created by those sections. In particular, statements contained in this Quarterly Report on Form 10-Q that are not historical facts, including, but not limited to statements concerning new product sales, the timing of product launches, product development and offerings, our consumer robots, our competition, our strategy, our market position, market acceptance of our products, seasonal factors, revenue recognition, our profits, growth of our revenues, composition of our revenues, our cost of revenues, units shipped, average selling prices, operating expenses, selling and marketing expenses, general and administrative expenses, research and development expenses, compensation costs, our projected income tax rate, our credit and letter of credit facilities, our valuations of investments, valuation and composition of our stock-based awards, and liquidity, constitute forward-looking statements and are made under these safe harbor provisions. Some of the forward-looking statements can be identified by the use of forward-looking terms such as "believes," "expects," "may," "will," "should," "could," "seek," "intends," "plans," "estimates," "anticipates," or other comparable terms. Forward-looking statements involve inherent risks and uncertainties, which could cause actual results to differ materially from those in the forward-looking statements. We urge you to consider the risks and uncertainties discussed in greater detail under the heading "Risk Factors" in evaluating our forward-looking statements. We have no plans to update our forward-looking statements to reflect events or circumstances after the date of this report. We caution readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made.

Overview
iRobot is a leading consumer robot company that designs and builds robots that empower people to do more both inside and outside of the home. Our consumer robots help people find smarter ways to clean and accomplish more in their daily lives. Our portfolio of solutions features proprietary technologies for the connected home and advanced concepts in cleaning, mapping and navigation, human-robot interaction and physical solutions. Leveraging this portfolio, our engineers are building an ecosystem of robots to empower the smart home. For more than 25 years, we have been a pioneer in the robotics and consumer products industries. We sell our robots through a variety of distribution channels, including chain stores and other national retailers, through our on-line store, and through value-added distributors and resellers worldwide.
As of June 29, 2019, we had 1,120 full-time employees. We have developed expertise in the disciplines necessary to build durable, high-performance and cost-effective robots through the close integration of software, electronics and hardware. Our core technologies serve as reusable building blocks that we adapt and expand to enhance existing products, develop next-generation versions of our products and design and launch new products, reducing the time, cost and risk associated with product development. Our significant expertise in consumer needs, robot design, engineering and smart home technologies and trends positions us to capitalize on the growth we expect in the market for robot-based consumer products.

19




Our continued success depends upon our ability to respond to a number of challenges in the consumer robots market. We believe the most significant of these include increasing competition and our ability to successfully develop and introduce products and product enhancements into both new and existing markets.
In the third quarter of 2018, we introduced the Roomba i7 and i7+ in the U.S., which are robot vacuums that remember a home's floor plan and clean specific rooms by name. Using Imprint™ Smart Mapping, the Roomba i7+ learns the home's floor plan, giving customers total control over which rooms to clean and when. When the Roomba i7+ robot vacuum is finished cleaning, it empties its own dust bin into the Clean Base™, which holds 30 bins of dirt. In the third quarter of 2018, the Company also introduced the Roomba e5, a highly-featured product at a more accessible price, to our lineup in the U.S. In the fourth quarter of 2018, we introduced the Roomba e5 in markets outside of the U.S. in advance of the holiday season.
During the first quarter of 2019, we launched Roomba i7 and i7+ in EMEA, Japan and China. During the second quarter of 2019, we successfully launched two new cleaning robots in the U.S., the Roomba s9 and s9+, which, along with the features of the Roomba i7 and i7+, are robot vacuums that can clean deep into corners and along edges, and the Braava jet m6 robot mop, which can tackle multiple rooms and large spaces with advanced navigation and mapping capabilities. Together, these two robots can use Imprint Link Technology to talk to each other, automatically vacuuming and then mopping without additional action by the user. We anticipate that the s9 and s9+ will be launched in EMEA in the third quarter of 2019 and in all other target markets in early 2020. We anticipate that the m6 will be launched in all target markets during the second half of 2019.

Critical Accounting Policies and Estimates
The preparation of financial statements in conformity with generally accepted accounting principles in the United States requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs, valuation of goodwill and acquired intangible assets; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. We base these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that we believe are reasonable under the circumstances. Actual results may differ from our estimates. Additional information about these critical accounting policies may be found in the "Management’s Discussion and Analysis of Financial Condition and Results of Operations" section included in our Annual Report on Form 10-K for the fiscal year ended December 29, 2018.
Effective December 30, 2018, we adopted the new leasing standard under ASC 842 using the alternative transition method. The adoption of the new standard resulted in a material increase in the assets and liabilities, while the impact on the Company's results of operations and cash flows was not material for the three and six months ended June 29, 2019. We have updated our accounting policy as it relates to lease accounting. Refer to Note 4 of the consolidated financial statements.

20




Overview of Results of Operations
The following table sets forth our results of operations as a percentage of revenue:
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Revenue
100.0
 %
 
100.0
%
 
100.0
%
 
100.0
%
Cost of revenue:
 
 
 
 
 
 
 
Cost of product revenue
53.4

 
45.8

 
51.0

 
45.2

Amortization of acquired intangible assets
1.2

 
2.1

 
1.2

 
2.1

Total cost of revenue
54.6

 
47.9

 
52.2

 
47.3

Gross profit
45.4

 
52.1

 
47.8

 
52.7

Operating expenses:
 
 
 
 
 
 
 
Research and development
13.7

 
15.4

 
14.2

 
15.3

Selling and marketing
21.7

 
20.3

 
19.2

 
17.5

General and administrative
7.9

 
10.4

 
8.8

 
11.1

Amortization of acquired intangible assets
0.1

 
0.1

 
0.1

 
0.1

Total operating expenses
43.4

 
46.2

 
42.3

 
44.0

Operating income
2.0

 
5.9

 
5.5

 
8.7

Other income, net
0.6

 
0.7

 
0.6

 
0.5

Income before income taxes
2.6

 
6.6

 
6.1

 
9.2

Income tax (benefit) expense
(0.2
)
 
2.0

 
0.1

 
2.2

Net income
2.8
 %
 
4.6
%
 
6.0
%
 
7.0
%
Comparison of Three and Six Months Ended June 29, 2019 and June 30, 2018
Revenue
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
 
 
(In thousands)
 
 
 
 
 
(In thousands)
 
 
Revenue
$
260,172

 
$
226,317

 
$
33,855

 
15.0
%
 
$
497,833

 
$
443,385

 
$
54,448

 
12.3
%
Revenue for the three months ended June 29, 2019 increased to $260.2 million, or 15.0%, compared to $226.3 million for the three months ended June 30, 2018. The $33.9 million increase in revenue for the three months ended June 29, 2019 was primarily driven by an increase in the average gross selling price of 3.9% for the three months ended June 29, 2019 as compared to the three months ended June 30, 2018. The increase in average gross selling price was primarily driven by the launch of our new products during the second half of fiscal 2018 and current period. Total robots shipped in the three months ended June 29, 2019 were approximately 1.1 million units, compared to approximately 1.0 million units in the three months ended June 30, 2018. In the three months ended June 29, 2019, domestic revenue increased $12.9 million, or 11.6%, and international revenue increased $20.9 million, or 18.2%, as compared to the three months ended June 30, 2018.
Revenue for the six months ended June 29, 2019 increased to $497.8 million, or 12.3%, compared to $443.4 million for the six months ended June 30, 2018. The $54.4 million increase in revenue for the six months ended June 29, 2019 was primarily driven by an increase in the average gross selling price of 3.7% for the six months ended June 29, 2019 as compared to the six months ended June 30, 2018. The increase in average gross selling price was primarily driven by the launch of our new products during the second half of fiscal 2018 and current period. Total robots shipped in the six months ended June 29, 2019 were approximately 2.0 million units, compared to approximately 1.8 million units in the six months ended June 30, 2018. In the six months ended June 29, 2019, domestic revenue increased $20.1 million, or 9.2%, and international revenue increased $34.3 million, or 15.2%, as compared to the six months ended June 30, 2018.

21




Cost of Product Revenue
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Cost of product revenue
$
138,891

 
$
103,712

 
$
35,179

 
33.9
%
 
$
253,929

 
$
200,213

 
$
53,716

 
26.8
%
As a percentage of revenue
53.4
%
 
45.8
%
 
 
 
 
 
51.0
%
 
45.2
%
 
 
 
 
Cost of product revenue increased to $138.9 million in the three months ended June 29, 2019, compared to $103.7 million in the three months ended June 30, 2018. The $35.2 million increase in cost of product revenue is primarily due to the increase in revenue and higher tariffs on our Roomba products imported into the United States from China. Effective September 24, 2018, tariffs were set at 10%, and effective May 10, 2019, tariffs further increased to 25%.
Cost of product revenue increased to $253.9 million in the six months ended June 29, 2019, compared to $200.2 million in the six months ended June 30, 2018. The $53.7 million increase in cost of product revenue is primarily due to the increase in revenue and higher tariffs on our Roomba products imported into the United States from China. Effective September 24, 2018, tariffs were set at 10%, and effective May 10, 2019, tariffs further increased to 25%.
Gross Profit
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Gross profit
$
118,170

 
$
117,926

 
$
244

 
0.2
%
 
$
237,716

 
$
233,711

 
$
4,005

 
1.7
%
Gross margin
45.4
%
 
52.1
%
 
 
 
 
 
47.8
%
 
52.7
%
 
 
 
 
Gross margin decreased to 45.4% in the three months ended June 29, 2019 compared to 52.1% in the three months ended June 30, 2018. The decrease in gross margin is primarily related to increased pricing and promotional activity in our international markets, most notably EMEA, as well as the increased tariffs on our Roomba products imported to the United States from China.
Gross margin decreased to 47.8% in the six months ended June 29, 2019 compared to 52.7% in the six months ended June 30, 2018. The decrease in gross margin is primarily related to pricing and promotional activity in our international markets as well as the increased tariffs on our Roomba products imported to the United States from China.
Research and Development
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Research and development
$
35,650

 
$
34,924

 
$
726

 
2.1
%
 
$
70,919

 
$
67,869

 
$
3,050

 
4.5
%
As a percentage of revenue
13.7
%
 
15.4
%
 
 
 
 
 
14.2
%
 
15.3
%
 
 
 
 
Research and development expenses increased $0.7 million, or 2.1%, to $35.7 million (13.7% of revenue) in the three months ended June 29, 2019 from $34.9 million (15.4% of revenue) in the three months ended June 30, 2018. This increase is primarily due to an increase in people-related costs of $2.5 million resulting from increased headcount, offset by lower program-related cost of $1.8 million during the three months ended June 29, 2019.
Research and development expenses increased $3.1 million, or 4.5%, to $70.9 million (14.2% of revenue) in the six months ended June 29, 2019 from $67.9 million (15.3% of revenue) in the six months ended June 30, 2018. This increase is primarily due to an increase in people-related costs of $5.9 million resulting from increased headcount, offset by lower program-related costs of $3.1 million during the six months ended June 29, 2019.

22




Selling and Marketing
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Selling and marketing
$
56,409

 
$
45,910

 
$
10,499

 
22.9
%
 
$
95,245

 
$
77,239

 
$
18,006

 
23.3
%
As a percentage of revenue
21.7
%
 
20.3
%
 
 
 
 
 
19.2
%
 
17.5
%
 
 
 
 
Selling and marketing expenses increased by $10.5 million, or 22.9%, to $56.4 million (21.7% of revenue) in the three months ended June 29, 2019 from $45.9 million (20.3% of revenue) in the three months ended June 30, 2018. This increase was primarily attributable to an increase in marketing investments totaling $8.7 million to support our new product launches in the U.S. and certain promotional and advertising campaigns in the US. and abroad as well as higher people-related costs of $1.3 million.
Selling and marketing expenses increased by $18.0 million, or 23.3%, to $95.2 million (19.2% of revenue) in the six months ended June 29, 2019 from $77.2 million (17.5% of revenue) in the six months ended June 30, 2018. This increase was primarily attributable to an increase in marketing investments totaling $13.8 million to support our new product launches and certain promotional and advertising campaigns in all regions as well as higher people-related costs of $3.1 million.
General and Administrative
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
General and administrative
$
20,592

 
$
23,468

 
$
(2,876
)
 
(12.3
)%
 
$
43,499

 
$
49,301

 
$
(5,802
)
 
(11.8
)%
As a percentage of revenue
7.9
%
 
10.4
%
 
 
 
 
 
8.8
%
 
11.1
%
 
 
 
 
General and administrative expenses decreased by $2.9 million, or 12.3%, to $20.6 million (7.9% of revenue) in the three months ended June 29, 2019 from $23.5 million (10.4% of revenue) in the three months ended June 30, 2018 primarily attributable to lower legal costs of $1.6 million after favorable determination of a previously-disclosed intellectual property litigation suit in the fourth quarter of 2018, as well as lower consulting costs of $0.6 million.
General and administrative expenses decreased by $5.8 million, or 11.8%, to $43.5 million (8.8% of revenue) in the six months ended June 29, 2019 from $49.3 million (11.1% of revenue) in the six months ended June 30, 2018 primarily attributable to lower legal costs of $4.6 million after favorable determination of a previously-disclosed intellectual property litigation suit in the fourth quarter of 2018, as well as lower consulting costs of $1.4 million.
Amortization of Acquired Intangible Assets
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Cost of revenue
$
3,111

 
$
4,679

 
$
(1,568
)
 
(33.5
)%
 
$
6,188

 
$
9,461

 
$
(3,273
)
 
(34.6
)%
Operating expense
269

 
269

 

 
 %
 
540

 
542

 
(2
)
 
(0.4
)%
Total amortization expense
$
3,380

 
$
4,948

 
$
(1,568
)
 
(31.7
)%
 
$
6,728

 
$
10,003

 
$
(3,275
)
 
(32.7
)%
As a percentage of revenue
1.3
%
 
2.2
%
 
 
 
 
 
1.4
%
 
2.3
%
 
 
 
 
The decrease in amortization of acquired intangible assets in the three and six months ended June 29, 2019 as compared to the three and six months ended June 30, 2018, was primarily related to the reacquired distribution rights intangible asset, which is being amortized on an accelerated basis.

23




Other Income, Net
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Other income, net
$
1,533

 
$
1,507

 
$
26

 
1.7
%
 
$
2,813

 
$
2,026

 
$
787

 
38.8
%
As a percentage of revenue
0.6
%
 
0.7
%
 
 
 
 
 
0.6
%
 
0.5
%
 
 
 
 
Other income, net, amounted to $1.5 million and $1.5 million for the three months ended June 29, 2019 and June 30, 2018, respectively. Other income, net, amounted to $2.8 million and $2.0 million for the six months ended June 29, 2019 and June 30, 2018, respectively. Other income, net includes interest income, interest expense, foreign currency gains (losses) as well as gains (losses) from strategic investments.

Income Tax (Benefit) Expense
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
June 29, 2019
 
June 30, 2018
 
Dollar
Change
 
Percent
Change
 
(In thousands)
 
(In thousands)
Income tax (benefit) expense
$
(424
)
 
$
4,391

 
$
(4,815
)
 
(109.7
)%
 
$
599

 
$
9,914

 
$
(9,315
)
 
(94.0
)%
Effective income tax rate
(6.3
)%
 
29.6
%
 

 

 
2.0
%
 
24.3
%
 
 
 
 

We recorded an income tax benefit of $(0.4) million and income tax expense of $4.4 million for the three months ended June 29, 2019 and June 30, 2018, respectively. The $(0.4) million income tax benefit for the three months ended June 29, 2019 resulted in an effective income tax rate of (6.3)%. The $4.4 million income tax expense for the three months ended June 30, 2018 resulted in an effective income tax rate of 29.6%. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit in the three months ended June 29, 2019. In addition, we recorded a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.
Our effective income tax rate of (6.3)% for the three months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit.
We recorded an income tax expense of $0.6 million and $9.9 million for the six months ended June 29, 2019 and June 30, 2018, respectively. The $0.6 million income tax expense for the six months ended June 29, 2019 resulted in an effective income tax rate of 2.0%. The $9.9 million income tax expense for the six months ended June 30, 2018 resulted in an effective income tax rate of 24.3%. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and a decrease in foreign taxes related to a discrete charge for estimated taxes associated with a restructuring of the EMEA business recorded in the six months ended June 30, 2018.
Our effective income tax rate of 2.0% for the six months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation.

Liquidity and Capital Resources
At June 29, 2019, our principal sources of liquidity were cash and cash equivalents totaling $132.8 million and short-term investments of $24.0 million. Our working capital, which represents our total current assets less total current liabilities, was $328.6 million as of June 29, 2019, compared to $227.7 million as of June 30, 2018.
We manufacture and distribute our products through contract manufacturers and third-party logistics providers. We believe this approach gives us the advantages of relatively low capital investment and significant flexibility in scheduling production and managing inventory levels. By leasing our office facilities, we also minimize the cash needed for expansion. Accordingly, our capital spending is generally limited to leasehold improvements, computers, office furniture, product-specific production tooling, internal use software and test equipment. In the six months ended June 29, 2019 and June 30, 2018, we spent $14.7 million and $14.3 million, respectively, on capital expenditures.
Our strategy for delivering consumer products to our distributors and retail customers gives us the flexibility to provide container shipments directly from our contract manufacturers in Southern China to our customers and, alternatively, allows our distributors and certain retail customers to take possession of product on a domestic basis. Accordingly, our consumer product

24




inventory consists of goods shipped to our third-party logistics providers for the fulfillment of distributor, retail and direct-to-consumer sales. Our contract manufacturers are also responsible for purchasing and stocking components required for the production of our products, and they typically invoice us when the finished goods are shipped.
Cash provided by operating activities
Net cash provided by operating activities for the six months ended June 29, 2019 was $21.3 million, of which the principal components were our net income of $29.7 million, non-cash charges of $36.0 million and changes in working capital. The change in working capital mainly includes a decrease in accounts receivable of $67.8 million, partially offset by a decrease in accounts payable and accrued expenses of $70.9 million and increases in inventory and other current assets of $27.1 million and $14.2 million, respectively.
Cash used in investing activities
Net cash used in investing activities for the six months ended June 29, 2019 was $16.2 million. During the six months ended June 29, 2019, we invested $14.7 million in the purchase of property and equipment, including machinery and tooling for new products. In addition, we made strategic investments of $4.5 million and paid $2.8 million for a business acquisition, while sales and maturities of marketable securities amounted to $5.9 million.
Cash used in financing activities
Net cash used in financing activities for the six months ended June 29, 2019 was $2.6 million. During the six months ended June 29, 2019, we received $4.7 million from employee stock plans and paid $7.3 million upon vesting of restricted stock where 59,260 shares were retained by us to cover employee tax withholdings.
Working Capital Facilities
Credit Facility
In June 2018, we entered into a new agreement with Bank of America, N.A., increasing the amount of our unsecured revolving line of credit from $75.0 million to $150.0 million extending the term of the credit facilities to June 2023. As of June 29, 2019, we had no outstanding borrowings under our revolving credit facility. The revolving line of credit is available to fund working capital and other corporate purposes. The interest on loans under our credit facility accrues, at our election, at either (1) LIBOR plus a margin, currently equal to 1.0%, based on our ratio of indebtedness to Adjusted EBITDA (the "Eurodollar Rate"), or (2) the lender’s base rate. The lender’s base rate is equal to the highest of (1) the federal funds rate plus 0.5%, (2) the lender’s prime rate and (3) the Eurodollar Rate plus 1.0%. In the event that LIBOR is discontinued as expected in 2021, we expect the interest rates for our debt following such event will be based on either alternate base rates or agreed upon replacement rates. While we do not expect a LIBOR discontinuation would affect our ability to borrow or maintain already outstanding borrowings, it could result in higher interest rates.
This credit facility contains customary terms and conditions for credit facilities of this type, including restrictions on our ability to incur or guarantee additional indebtedness, create liens, enter into transactions with affiliates, make loans or investments, sell assets, pay dividends or make distributions on, or repurchase, our stock, and consolidate or merge with other entities. In addition, we are required to meet certain financial covenants customary with this type of agreement, including maintaining a maximum ratio of indebtedness to Adjusted EBITDA and a minimum specified interest coverage ratio.
This credit facility contains customary events of default, including for payment defaults, breaches of representations, breaches of affirmative or negative covenants, cross defaults to other material indebtedness, bankruptcy and failure to discharge certain judgments. If a default occurs and is not cured within any applicable cure period or is not waived, our obligations under the credit facility may be accelerated.
As of June 29, 2019, we were in compliance with all covenants under the revolving credit facility.
Working Capital and Capital Expenditure Needs
We currently have no material cash commitments, except for normal recurring trade payables, expense accruals, capital expenditures and operating leases, all of which we anticipate funding through working capital, funds provided by operating activities and our existing revolving line of credit. We believe our outsourced approach to manufacturing provides us with flexibility in both managing inventory levels and financing our inventory. We believe our existing cash and cash equivalents, short-term investments, cash provided by operating activities, and funds available through our revolving line of credit will be sufficient to meet our working capital and capital expenditure needs over at least the next twelve months. In the event our revenue plan does not meet our expectations, we may eliminate or curtail expenditures to mitigate the impact on our working capital. Our future capital requirements will depend on many factors, including our rate of revenue growth, the expansion of our marketing and sales activities, the timing and extent of spending to support product development efforts, the timing of introductions of new products and enhancements to existing products, the acquisition of new capabilities or technologies, and the continuing market acceptance of our products and services. Moreover, to the extent existing cash and cash equivalents,

25




short-term investments, cash from operations, and cash from short-term borrowing are insufficient to fund our future activities, we may need to raise additional funds through public or private equity or debt financing. As part of our business strategy, we may consider additional acquisitions of companies, technologies and products, which could also require us to seek additional equity or debt financing. Additional funds may not be available on terms favorable to us or at all.
Contractual Obligations
The disclosure of our contractual obligations and commitments is set forth under the heading "Management's Discussion and Analysis of Financial Condition and Results of Operations - Contractual Obligations" in our Annual Report on Form 10-K for the year ended December 29, 2018. Our principal commitments generally consist of obligations under our credit facility, leases for office space and minimum purchase commitments for services such as cloud support and other non-cancelable contractual obligations for subscription software services. There have been no material changes in our contractual obligations and commitments since December 29, 2018.
Off-Balance Sheet Arrangements
As of June 29, 2019, we had no off-balance sheet arrangements as defined in Item 303(a)(4) of Regulation S-K.
Recently Adopted Accounting Pronouncements
See Note 2 to the Consolidated Financial Statements for a discussion of recently adopted accounting pronouncements.
Recently Issued Accounting Pronouncements
See Note 2 to the Consolidated Financial Statements for a discussion of recently issued accounting pronouncements.
Item 3. Quantitative and Qualitative Disclosure About Market Risk
Exchange Rate Sensitivity
Our international revenue and expenses are denominated in multiple currencies, including Japanese Yen, Canadian Dollars, Chinese Renminbi, British Pounds and Euros. As such, we have exposure to adverse changes in exchange rates associated with the revenue and operating expenses of our foreign operations. Any fluctuations in other currencies will have minimal direct impact on our international revenue.
In addition to international business conducted in foreign currencies, we have international revenue denominated in U.S. dollars. As the U.S. dollar strengthens or weakens against other currencies, our international distributors may be impacted, which could affect their profitability and our ability to maintain current pricing levels on our international consumer products.
We regularly monitor the forecast of non-U.S. dollar revenue and expenses and the level of non-U.S. dollar monetary asset and liability balances to determine if any actions, including possibly entering into foreign currency contracts should be taken to minimize the impact of fluctuating exchange rates on our results of operations. Periodically, we enter into forward exchange contracts to hedge against foreign currency fluctuations. These contracts may or may not be designated as cash flow hedges for accounting purposes. We use cash flow hedges primarily to reduce the effects of foreign exchange rate changes on sales primarily in Japanese Yen and Euros. At June 29, 2019 and December 29, 2018, we had outstanding cash flow hedges with a total notional value of $389.9 million and $366.7 million, respectively.
We also enter into economic hedges that are not designated as hedges from an accounting standpoint to reduce or eliminate the effects of foreign exchange rate changes typically related to short term trade receivables and payables. These contracts have maturities of ten months or less. At June 29, 2019 and December 29, 2018, we had outstanding economic hedges with a total notional value of $48.0 million and $56.0 million, respectively.
At June 29, 2019, assuming all other variables are constant, if the U.S. Dollar weakened or strengthened by 10%, the fair market value of our foreign currency contracts would increase or decrease by approximately $45.9 million.

Item 4. Controls and Procedures
Our management, with the participation of our Chief Executive Officer and Chief Financial Officer, evaluated the effectiveness of our disclosure controls and procedures (as defined in Rule 13a-15(e) of the Exchange Act as of the end of the period covered by this report. Based on that evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures as of the end of the period covered by this report were effective at a reasonable assurance level in ensuring that information required to be disclosed by us in reports that we file or submit under the Exchange Act (i) is recorded, processed, summarized and reported within the time periods specified in the Securities and Exchange Commission’s rules and forms; and (ii) accumulated and communicated to management, including our Chief Executive Officer and Chief Financial Officer, as appropriate, to allow timely discussions regarding required disclosure. We believe that a control system, no matter how well designed and operated, cannot provide absolute assurance that the objectives of the control system

26




are met, and no evaluation of controls can provide absolute assurance that all control issues and instances of fraud, if any, within a company have been detected.
There was no change in our internal control over financial reporting (as defined in Rule 13a-15(f) of the Exchange Act) that occurred during the period covered by this report that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.
Part II. Other Information
Item 1. Legal Proceedings
From time to time and in the ordinary course of business, we are subject to various claims, charges and litigation. The outcome of litigation cannot be predicted with certainty and some lawsuits, claims or proceedings may be disposed of unfavorably to us, which could materially affect our financial condition or results of operations.
Item 1A. Risk Factors

We operate in a rapidly changing environment that involves a number of risks that could materially affect our business, financial condition or future results, some of which are beyond our control. In addition to the other information set forth in this report, the risks and uncertainties that we believe are most important for you to consider are discussed in Part I, "Item 1A. Risk Factors" in our Annual Report on Form 10-K for the year ended December 29, 2018, which could materially affect our business, financial condition or future results. Additional risks and uncertainties not presently known to us, which we currently deem immaterial or which are similar to those faced by other companies in our industry or business in general, may also impair our business operations. There are no material changes to the Risk Factors described in our Annual Report on Form 10-K for the year ended December 29, 2018, other than updates regarding the tariff increase as set forth in the following:

Significant developments from the recent and potential changes in U.S. trade policies have had, and we expect will continue to have, a material adverse effect on our business, financial condition and results of operations.

The U.S. government has indicated its intent to alter its approach to international trade policy and in some cases to renegotiate, or potentially terminate, certain existing bilateral or multi-lateral trade agreements and treaties with foreign countries. Effective September 24, 2018, the U.S. government implemented a 10% tariff on certain goods imported from China, which include the majority of those imported by the Company. These tariffs were increased to 25% on May 10, 2019. In addition, the U.S. government has indicated a desire to implement tariffs on the remainder of the goods the Company imports from China, although the timing of such an increase is unpredictable.  These tariffs, and other governmental action relating to international trade agreements or policies, have adversely impacted demand for our products, our costs, customers, suppliers, distributors, resellers and/or the U.S. economy or certain sectors thereof and, as a result, have adversely impacted, and we expect will continue to adversely impact, our business, financial condition and results of operations. The already-implemented, and any additional or increased, tariffs have caused and may in the future cause us to further increase prices to our customers which we believe has reduced, and in the future may reduce, demand for our products.  Any such price increase, may not be sufficient to fully offset the impact of the tariffs, result in lowering our margin on products sold, as was the case during the first half of 2019 and we expect going forward. It remains unclear what the U.S. or foreign governments will or will not do with respect to tariffs, international trade agreements and policies on a short-term or long-term basis. We cannot predict future trade policy or the terms of any renegotiated trade agreements and their impacts on our business. The adoption and expansion of trade restrictions, the occurrence of a trade war, or other governmental action related to tariffs or trade agreements or policies has the potential to further adversely impact demand for our products, our costs, our customers, our suppliers, and the U.S. economy, which in turn could further adversely impact our business, financial condition and results of operations.

27




Item 5. Other Information

Our policy governing transactions in our securities by our directors, officers, and employees permits our officers, directors, funds affiliated with our directors, and certain other persons to enter into trading plans complying with Rule 10b5-l under the Exchange Act. We have been advised that certain of our officers and directors (including Colin Angle, Chief Executive Officer, Russell Campanello, EVP, Human Resources and Corporate Communications, Christian Cerda, Chief Operating Officer, Glen Weinstein, EVP & Chief Legal Officer, as well as Mohamad Ali, Deborah Ellinger, Ruey-bin Kao, Andrew Miller and Michelle Stacy, each a director of the Company) have entered into trading plans (each a "Plan" and collectively, the "Plans") covering periods after the date of this quarterly report on Form 10-Q in accordance with Rule 10b5-1 and our policy governing transactions in our securities. Generally, under these trading plans, the individual relinquishes control over the transactions once the trading plan is put into place. Accordingly, sales under these plans may occur at any time, including possibly before, simultaneously with, or immediately after significant events involving our company.
We anticipate that, as permitted by Rule 10b5-l and our policy governing transactions in our securities, some or all of our officers, directors and employees may establish trading plans in the future. We intend to disclose the names of our executive officers and directors who establish a trading plan in compliance with Rule 10b5-1 and the requirements of our policy governing transactions in our securities in our future quarterly and annual reports on Form 10-Q and 10-K filed with the Securities and Exchange Commission. We undertake no obligation to update or revise the information provided herein.

28




Item 6. Exhibits
 
EXHIBIT INDEX
Exhibit
Number
 
Description
 
 
 
 
Certification Pursuant to Rule 13a-14(a) or Rule 15d-14(a) of the Securities Exchange Act of 1934
 
 
 
 
Certification Pursuant to Rule 13a-14(a) or Rule 15d-14(a) of the Securities Exchange Act of 1934
 
 
 
 
Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002
 
 
 
101.SCH*
 
Inline XBRL Taxonomy Extension Schema Document
 
 
 
101.CAL*
 
Inline XBRL Taxonomy Extension Calculation Linkbase Document
 
 
 
101.LAB*
 
Inline XBRL Taxonomy Extension Label Linkbase Document
 
 
 
101.PRE*
 
Inline XBRL Taxonomy Extension Presentation Linkbase Document
 
 
 
101.DEF*
 
Inline XBRL Taxonomy Extension Definition Linkbase Document
 
 
 
104*
 
Cover Page Interactive Data File (formatted as inline XBRL with applicable taxonomy extension information contained in Exhibits 101.*)
 __________________________
*
Filed herewith
**
Furnished herewith



29




SIGNATURES
Pursuant to the requirements 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.
 
 
iROBOT CORPORATION
 
 
 
Date: August 1, 2019
By:
/s/ Alison Dean
 
 
Alison Dean
 
 
Executive Vice President and Chief Financial Officer (Duly Authorized Officer and Principal Financial Officer)

30
EX-31.1 2 irbtexhibit31162919.htm EXHIBIT 31.1 Exhibit


Exhibit 31.1
Certifications
I, Colin M. Angle, certify that:
1.
I have reviewed this Quarterly Report on Form 10-Q of iRobot Corporation;
2.
Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
3.
Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;
4.
The registrant's other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
a)
Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
b)
Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
c)
Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
d)
Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting; and
5.
The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):
a)
All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and
b)
Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.

Date: August 1, 2019
/s/ COLIN M. ANGLE
 
Colin M. Angle
Chairman of the Board and Chief Executive Officer




EX-31.2 3 irbtexhibit31262919.htm EXHIBIT 31.2 Exhibit


Exhibit 31.2
Certifications
I, Alison Dean, certify that:
1.
I have reviewed this Quarterly Report on Form 10-Q of iRobot Corporation;
2.
Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
3.
Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;
4.
The registrant's other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
a)
Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
b)
Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
c)
Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
d)
Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting; and
5.
The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):
a)
All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and
b)
Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.

Date: August 1, 2019
/s/ ALISON DEAN
 
Alison Dean
Chief Financial Officer




EX-32.1 4 irbtexhibit32162919.htm EXHIBIT 32.1 Exhibit


Exhibit 32.1

CERTIFICATION PURSUANT TO
18 U.S.C. SECTION 1350
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
In connection with the Quarterly Report on Form 10-Q of iRobot Corporation (the "Company") for the period ended June 29, 2019 as filed with the Securities and Exchange Commission on the date hereof (the "Report"), we, Colin M. Angle, the Chief Executive Officer of the Company and Alison Dean, the Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, to our knowledge, that:
(1)
the Report fully complies with the requirements of Section 13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934, as amended; and
(2)
the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.
This certification is being provided pursuant to 18 U.S.C. 1350 and is not to be deemed a part of the Report, nor is it to be deemed to be "filed" for any purpose whatsoever.

Date: August 1, 2019
/s/ COLIN M. ANGLE
 
Colin M. Angle
Chairman of the Board and Chief Executive Officer
 
 
Date: August 1, 2019
/s/ ALISON DEAN
 
Alison Dean
Chief Financial Officer



EX-101.SCH 5 irbt-20190629.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 2118100 - Disclosure - Accrued Expenses link:presentationLink link:calculationLink link:definitionLink 2418402 - Disclosure - Accrued Expenses (Details) link:presentationLink link:calculationLink link:definitionLink 2318301 - Disclosure - Accrued Expenses (Tables) link:presentationLink link:calculationLink link:definitionLink 2124100 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 2424404 - Disclosure - Commitments and Contingencies - Activity Related to Warranty Accrual (Detail) link:presentationLink link:calculationLink link:definitionLink 2424402 - Disclosure - Commitments and Contingencies - Additional Information (Detail) link:presentationLink link:calculationLink link:definitionLink 2424403 - Disclosure - Commitments and Contingencies - Summary of Future Minimum Rental Payments under Operating Leases (Detail) link:presentationLink link:calculationLink link:definitionLink 2324301 - Disclosure - Commitments and Contingencies (Tables) link:presentationLink link:calculationLink link:definitionLink 1001000 - Statement - Consolidated Balance Sheets (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1001501 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1005000 - Statement - Consolidated Statement of Shareholders' Equity Statement link:presentationLink link:calculationLink link:definitionLink 1006000 - Statement - Consolidated Statements of Cash Flows (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1004000 - Statement - Consolidated Statements of Comprehensive Income (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1003000 - Statement - Consolidated Statements of Income Statement link:presentationLink link:calculationLink link:definitionLink 2419404 - Disclosure - Derivative Instruments (Details) link:presentationLink link:calculationLink link:definitionLink 2119100 - Disclosure - Derivative Instruments (Notes) link:presentationLink link:calculationLink link:definitionLink 2419403 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Details) link:presentationLink link:calculationLink link:definitionLink 2319302 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Tables) link:presentationLink link:calculationLink link:definitionLink 2319301 - Disclosure - Derivative Instruments (Tables) link:presentationLink link:calculationLink link:definitionLink 2101100 - Disclosure - Description of Business link:presentationLink link:calculationLink link:definitionLink 0001000 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 2422401 - Disclosure - Fair Value Measurements Fair Value on a Recurring Basis (Details) link:presentationLink link:calculationLink link:definitionLink 2122100 - Disclosure - Fair Value Measurements (Notes) link:presentationLink link:calculationLink link:definitionLink 2117100 - Disclosure - Goodwill, Other Intangible Assets and Other Assets link:presentationLink link:calculationLink link:definitionLink 2417402 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail) link:presentationLink link:calculationLink link:definitionLink 2417405 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details) link:presentationLink link:calculationLink link:definitionLink 2417403 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail) link:presentationLink link:calculationLink link:definitionLink 2417404 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 2317301 - Disclosure - Goodwill, Other Intangible Assets and Other Assets (Tables) link:presentationLink link:calculationLink link:definitionLink 2426402 - Disclosure - Income Taxes (Details) link:presentationLink link:calculationLink link:definitionLink 2126100 - Disclosure - Income Taxes (Notes) link:presentationLink link:calculationLink link:definitionLink 2326301 - Disclosure - Income Taxes (Tables) link:presentationLink link:calculationLink link:definitionLink 2127100 - Disclosure - Industry Segment, Geographic Information and Significant Customers link:presentationLink link:calculationLink link:definitionLink 2427403 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail) link:presentationLink link:calculationLink link:definitionLink 2427402 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail) link:presentationLink link:calculationLink link:definitionLink 2327301 - Disclosure - Industry Segment, Geographic Information and Significant Customers (Tables) link:presentationLink link:calculationLink link:definitionLink 2116100 - Disclosure - Inventory link:presentationLink link:calculationLink link:definitionLink 2416402 - Disclosure - Inventory (Details) link:presentationLink link:calculationLink link:definitionLink 2316301 - Disclosure - Inventory (Tables) link:presentationLink link:calculationLink link:definitionLink 2409405 - Disclosure - Leases Financial Statement Impact of Adopting ASC 842 (Details) link:presentationLink link:calculationLink link:definitionLink 2409402 - Disclosure - Leases Lease Cost (Details) link:presentationLink link:calculationLink link:definitionLink 2409404 - Disclosure - Leases Maturity of Operating Lease LIability (Details) link:presentationLink link:calculationLink link:definitionLink 2109100 - Disclosure - Leases (Notes) link:presentationLink link:calculationLink link:definitionLink 2409403 - Disclosure - Leases Supplemental Cash Flow (Details) link:presentationLink link:calculationLink link:definitionLink 2309301 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink 2408407 - Disclosure - Revenue Recognition Contract Balances (Details) link:presentationLink link:calculationLink link:definitionLink 2308304 - Disclosure - Revenue Recognition Contract Balances (Tables) link:presentationLink link:calculationLink link:definitionLink 2408406 - Disclosure - Revenue Recognition Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 2308303 - Disclosure - Revenue Recognition Disaggregation of Revenue (Tables) link:presentationLink link:calculationLink link:definitionLink 2108100 - Disclosure - Revenue Recognition (Notes) link:presentationLink link:calculationLink link:definitionLink 2208201 - Disclosure - Revenue Recognition (Policies) link:presentationLink link:calculationLink link:definitionLink 2408405 - Disclosure - Revenue Recognition Significant Judgments (Details) link:presentationLink link:calculationLink link:definitionLink 2308302 - Disclosure - Revenue Recognition Significant Judgments (Tables) link:presentationLink link:calculationLink link:definitionLink 2423402 - Disclosure - Stockholders Equity (Details) link:presentationLink link:calculationLink link:definitionLink 2123100 - Disclosure - Stockholders Equity (Notes) link:presentationLink link:calculationLink link:definitionLink 2323301 - Disclosure - Stockholders Equity (Tables) link:presentationLink link:calculationLink link:definitionLink 2102100 - Disclosure - Summary of Significant Accounting Policies link:presentationLink link:calculationLink link:definitionLink 2402403 - Disclosure - Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail) link:presentationLink link:calculationLink link:definitionLink 2402405 - Disclosure - Summary of Significant Accounting Policies Other Assets (Details) link:presentationLink link:calculationLink link:definitionLink 2202201 - Disclosure - Summary of Significant Accounting Policies (Policies) link:presentationLink link:calculationLink link:definitionLink 2402404 - Disclosure - Summary of Significant Accounting Policies Revenue Recognition (Details) link:presentationLink link:calculationLink link:definitionLink 2302302 - Disclosure - Summary of Significant Accounting Policies (Tables) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 6 irbt-20190629_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT EX-101.DEF 7 irbt-20190629_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT EX-101.LAB 8 irbt-20190629_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Commitments and Contingencies Disclosure [Abstract] Activity Related to the Warranty Accrual Schedule of Product Warranty Liability [Table Text Block] Goodwill and Intangible Assets Disclosure [Abstract] Schedule of Goodwill [Table] Schedule of Goodwill [Table] Consolidation Items [Axis] Consolidation Items [Axis] Consolidation Items [Domain] Consolidation Items [Domain] Income Statement Location [Axis] Income Statement Location [Axis] Income Statement Location [Domain] Income Statement Location [Domain] Range [Axis] Range [Axis] Range [Domain] Range [Domain] Goodwill [Line Items] Goodwill [Line Items] Goodwill Goodwill Goodwill, Acquired During Period Goodwill, Acquired During Period Goodwill, Foreign Currency Translation Gain (Loss) Goodwill, Foreign Currency Translation Gain (Loss) Inventory Disclosure [Abstract] Components of Inventory Schedule of Inventory, Current [Table Text Block] Commitments and Contingencies Commitments and Contingencies Disclosure [Text Block] Statement of Comprehensive Income [Abstract] Statement [Table] Statement [Table] Scenario [Axis] Scenario [Axis] Scenario, Unspecified [Domain] Scenario, Unspecified [Domain] Class of Stock [Axis] Class of Stock [Axis] Class of Stock [Domain] Class of Stock [Domain] Statement [Line Items] Statement [Line Items] Net income Net Income (Loss) Attributable to Parent Other comprehensive income (loss): Other Comprehensive Income (Loss), Net of Tax [Abstract] Net foreign currency translation adjustments Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax, Portion Attributable to Parent Net unrealized gains (losses) on cash flow hedges, net of tax Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, Net of Tax Net (gains) losses on cash flow hedge reclassified into earnings, net of tax Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI on Derivatives, Net of Tax Net unrealized gains (losses) on marketable securities, net of tax Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent Total comprehensive income Comprehensive Income (Loss), Net of Tax, Attributable to Parent Schedule of Derivative Instruments [Abstract] Schedule of Derivative Instruments [Abstract] Derivative [Table] Derivative [Table] Hedging Designation [Axis] Hedging Designation [Axis] Hedging Designation [Domain] Hedging Designation [Domain] Not Designated as Hedging Instrument [Member] Not Designated as Hedging Instrument [Member] Designated as Hedging Instrument [Member] Designated as Hedging Instrument [Member] Other Nonoperating Income (Expense) [Member] Other Nonoperating Income (Expense) [Member] Cost of revenue Cost of Sales [Member] Sales Revenue, Net [Member] Sales Revenue, Net [Member] Hedging Relationship [Axis] Hedging Relationship [Axis] Hedging Relationship [Domain] Hedging Relationship [Domain] Cash Flow Hedging [Member] Cash Flow Hedging [Member] Balance Sheet Location [Axis] Balance Sheet Location [Axis] Balance Sheet Location [Domain] Balance Sheet Location [Domain] Accrued Liabilities [Member] Accrued Liabilities [Member] Other Noncurrent Liabilities [Member] Other Noncurrent Liabilities [Member] Other Current Assets [Member] Other Current Assets [Member] Other Noncurrent Assets [Member] Other Noncurrent Assets [Member] Derivative, by Nature [Axis] Derivative Instrument [Axis] Derivative Contract [Domain] Derivative Contract [Domain] Foreign Exchange Forward [Member] Foreign Exchange Forward [Member] Energy [Axis] Energy [Axis] Energy [Domain] Energy [Domain] Variable Rate [Axis] Variable Rate [Axis] Variable Rate [Domain] Variable Rate [Domain] Position [Axis] Position [Axis] Position [Domain] Position [Domain] Derivative [Line Items] Derivative [Line Items] Document Period End Date Document Period End Date Revenue Revenues Total cost of revenue Cost of Goods and Services Sold Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net Derivative Instruments, Gain Recognized in Other Comprehensive Income (Loss), Effective Portion Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax Derivative, Notional Amount Derivative, Notional Amount Derivative Asset Derivative Asset Other Derivatives Not Designated as Hedging Instruments at Fair Value, Net Other Derivatives Not Designated as Hedging Instruments at Fair Value, Net Derivative Liability Derivative Liability Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net Leases [Abstract] Operating lease right-of-use asset Operating Lease, Right-of-Use Asset Operating Lease, Liability Operating Lease, Liability Operating Lease Cost [Abstract] Operating Lease Cost [Abstract] Lease, Cost [Table Text Block] Lease, Cost [Table Text Block] ScheduleOfLeasesSupplementalCashFlow [Table Text Block] ScheduleOfLeasesSupplementalCashFlow [Table Text Block] ScheduleOfLeasesSupplementalCashFlow [Table Text Block] Lessee, Operating Lease, Liability, Maturity [Table Text Block] Lessee, Operating Lease, Liability, Maturity [Table Text Block] Schedule of Goodwill [Table Text Block] Schedule of Goodwill [Table Text Block] Other Intangible Assets Schedule of Finite-Lived Intangible Assets [Table Text Block] Estimated Future Amortization Expense Related to Current Intangible Assets Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] Accrued Liabilities, Current [Abstract] Accrued Expenses Accounts Payable and Accrued Liabilities Disclosure [Text Block] Revenue Recognition and Deferred Revenue [Abstract] Disaggregation of Revenue [Table Text Block] Disaggregation of Revenue [Table Text Block] Disaggregation of Revenue [Table] Disaggregation of Revenue [Table] Geographical [Axis] Geographical [Axis] Geographical [Domain] Geographical [Domain] UNITED STATES UNITED STATES EMEA [Member] EMEA [Member] All Other Regions [Member] All Other Regions [Member] All Other Regions [Member] Disaggregation of Revenue [Line Items] Disaggregation of Revenue [Line Items] Revenue from Contract with Customer, Excluding Assessed Tax Revenue from Contract with Customer, Excluding Assessed Tax Inventory Inventory Disclosure [Text Block] Derivative Instruments and Hedging Activities Disclosure [Abstract] Derivative Instruments and Hedging Activities Disclosure [Text Block] Derivative Instruments and Hedging Activities Disclosure [Text Block] Fair Value Disclosures [Abstract] Fair Value Measurements, Recurring and Nonrecurring [Table] Fair Value Measurements, Recurring and Nonrecurring [Table] Measurement Frequency [Axis] Measurement Frequency [Axis] Fair Value, Measurement Frequency [Domain] Fair Value, Measurement Frequency [Domain] Fair Value, Measurements, Recurring [Member] Fair Value, Measurements, Recurring [Member] Fair Value Hierarchy and NAV [Axis] Fair Value Hierarchy and NAV [Axis] Fair Value Hierarchy and NAV [Domain] Fair Value Hierarchy and NAV [Domain] Fair Value, Inputs, Level 1 [Member] Fair Value, Inputs, Level 1 [Member] Fair Value, Inputs, Level 2 [Member] Fair Value, Inputs, Level 2 [Member] Fair Value, Inputs, Level 3 [Member] Fair Value, Inputs, Level 3 [Member] Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value Available-for-sale Securities, Amortized Cost Basis Available-for-sale Securities, Amortized Cost Basis Cash and Cash Equivalents, Fair Value Disclosure Cash and Cash Equivalents, Fair Value Disclosure Available-for-sale Securities Available-for-sale Securities Convertible Debt, Fair Value Disclosures Convertible Debt, Fair Value Disclosures conversion of debt Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Settlements Assets, Fair Value Disclosure Assets, Fair Value Disclosure Financial and Nonfinancial Liabilities, Fair Value Disclosure Financial and Nonfinancial Liabilities, Fair Value Disclosure Accrued Professional Fees, Current Accrued Professional Fees, Current Accounts Payable, Current [Abstract] Accounts Payable, Current [Abstract] Accrued Employee Benefits Accrued Employee Benefits Accrued warranty Standard Product Warranty Accrual, Current Accrued bonus Accrued Bonuses Operating Lease, Liability, Current Operating Lease, Liability, Current Accrued direct fulfillment costs Accrued Direct Fulfillment Costs Accrued direct fulfillment costs. Accrued sales and other taxes payable Accrued Sales Tax Accrued Sales Tax Accrued federal and state income taxes Accrued Income Taxes Accrued other Other Accrued Liabilities, Current Accrued expenses Accrued Liabilities, Current Operating Lease, Weighted Average Discount Rate, Percent Operating Lease, Weighted Average Discount Rate, Percent Operating Lease, Cost Operating Lease, Cost Variable Lease, Cost Variable Lease, Cost Lease, Cost Lease, Cost Operating Lease, Weighted Average Remaining Lease Term Operating Lease, Weighted Average Remaining Lease Term Derivative Instruments, Gain (Loss) [Table] Derivative Instruments, Gain (Loss) [Table] Derivative Instrument [Axis] Other Comprehensive Income Location [Axis] Other Comprehensive Income Location [Axis] Other Comprehensive Income Location [Domain] Other Comprehensive Income Location [Domain] Derivative Instruments, Gain (Loss) [Line Items] Derivative Instruments, Gain (Loss) [Line Items] Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax Organization, Consolidation and Presentation of Financial Statements [Abstract] Description of Business Nature of Operations [Text Block] Accounting Policies [Abstract] Summary of Significant Accounting Policies Significant Accounting Policies [Text Block] Segment Reporting [Abstract] Schedule of Revenues from External Customers and Long-Lived Assets [Table] Schedule of Revenues from External Customers and Long-Lived Assets [Table] Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Domain] Concentration Risk Benchmark [Domain] Customer [Axis] Customer [Axis] Customer [Domain] Customer [Domain] Amazon [Member] Amazon [Member] Amazon [Member] Concentration Risk Type [Axis] Concentration Risk Type [Axis] Concentration Risk Type [Domain] Concentration Risk Type [Domain] Customer Concentration Risk [Member] Customer Concentration Risk [Member] Revenues from External Customers and Long-Lived Assets [Line Items] Revenues from External Customers and Long-Lived Assets [Line Items] Concentration Risk, Percentage Concentration Risk, Percentage Basis of Presentation Basis of Accounting, Policy [Policy Text Block] Use of Estimates Use of Estimates, Policy [Policy Text Block] Investment, Policy [Policy Text Block] Investment, Policy [Policy Text Block] Net Income Per Share Earnings Per Share, Policy [Policy Text Block] Recent Accounting Pronouncements New Accounting Pronouncements, Policy [Policy Text Block] Equity [Abstract] Stockholders' Equity Note Disclosure [Text Block] Stockholders' Equity Note Disclosure [Text Block] Inventory, Raw Materials, Net of Reserves Inventory, Raw Materials, Net of Reserves Inventory, Finished Goods, Net of Reserves Inventory, Finished Goods, Net of Reserves Inventory Inventory, Net Refund liability, product returns Refund liability, product returns Refund liability, product returns Refund liability, other credits and incentives Refund liability, other credits and incentives Refund liability, other credits and incentives Lessee, Operating Leases [Text Block] Lessee, Operating Leases [Text Block] Disclosure Segment Information About Revenue Cost Of Revenue Gross Margin And Income Before Income Taxes [Abstract] Disclosure - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes [Abstract] Reconciliation of Operating Profit (Loss) from Segments to Consolidated [Table] Reconciliation of Operating Profit (Loss) from Segments to Consolidated [Table] Legal Entity [Axis] Legal Entity [Axis] Entity [Domain] Entity [Domain] Business Segments [Axis] Segments [Axis] Segment [Domain] Segments [Domain] Segment Reporting, Reconciling Item for Operating Profit (Loss) from Segment to Consolidated [Line Items] Segment Reporting, Reconciling Item for Operating Profit (Loss) from Segment to Consolidated [Line Items] Number of Reportable Segments Number of Reportable Segments Gross profit Gross Profit Research and development Research and Development Expense Selling and marketing Selling and Marketing Expense General and administrative General and Administrative Expense Other income, net Nonoperating Income (Expense) Statement of Stockholders' Equity [Abstract] Restatement [Axis] Restatement [Axis] Restatement [Domain] Restatement [Domain] Report Date [Axis] Report Date [Axis] Financial Statement Filing Date [Domain] Financial Statement Filing Date [Domain] Equity Components [Axis] Equity Components [Axis] Equity Component [Domain] Equity Component [Domain] Common Stock [Member] Common Stock [Member] Additional Paid-in Capital [Member] Additional Paid-in Capital [Member] Retained Earnings [Member] Retained Earnings [Member] AOCI Attributable to Parent [Member] AOCI Attributable to Parent [Member] Adjustments for New Accounting Pronouncements [Axis] Adjustments for New Accounting Pronouncements [Axis] Type of Adoption [Domain] Type of Adoption [Domain] Adjustments for Change in Accounting Principle [Axis] Adjustments for Change in Accounting Principle [Axis] Adjustments for Change in Accounting Principle [Domain] Adjustments for Change in Accounting Principle [Domain] Adjustments for Error Corrections [Axis] Adjustments for Error Corrections [Axis] Adjustments for Error Correction [Domain] Adjustments for Error Correction [Domain] Beginning Balance, Shares Common Stock, Shares, Issued Beginning balance Stockholders' Equity Attributable to Parent Issuance of common stock under employee stock plans (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period Stock Issued During Period, Value, Stock Options Exercised Stock Issued During Period, Value, Stock Options Exercised Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares) Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition Shares Paid for Tax Withholding for Share Based Compensation (in shares) Shares Paid for Tax Withholding for Share Based Compensation Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount Stock withheld to Cover tax withholding requirements Upon Vesting to restricted Stock Units. Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent Adjustments to Additional Paid in Capital Directors Deferred Compensation Adjustments to Additional Paid in Capital Directors Deferred Compensation Adjustments to additional paid in capital directors deferred compensation. Stock Repurchased and Retired During Period, Shares Stock Repurchased and Retired During Period, Shares Stock Repurchased and Retired During Period, Value Stock Repurchased and Retired During Period, Value Cumulative Effect of New Accounting Principle in Period of Adoption Cumulative Effect of New Accounting Principle in Period of Adoption Derivative Instruments, Gain (Loss) [Table Text Block] Derivative Instruments, Gain (Loss) [Table Text Block] Components of Accrued Expenses Schedule of Accrued Liabilities [Table Text Block] Returns reserve adjustment [Abstract] Returns reserve adjustment [Abstract] SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis] SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis] SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain] SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain] Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes Schedule of Segment Reporting Information, by Segment [Table Text Block] Disclosure Goodwill Other Intangible Assets And Other Assets Additional Information [Abstract] Disclosure - Goodwill, Other Intangible Assets and Other Assets - Additional Information [Abstract] Schedule of Business Acquisitions, by Acquisition [Table] Schedule of Business Acquisitions, by Acquisition [Table] Business Acquisition [Axis] Business Acquisition [Axis] Business Acquisition, Acquiree [Domain] Business Acquisition, Acquiree [Domain] Business Acquisition [Line Items] Business Acquisition [Line Items] Amortization of Acquired Intangible Assets Amortization of Intangible Assets Disclosure Activity Related To Warranty Accrual [Abstract] Disclosure - Activity Related to Warranty Accrual [Abstract] Movement in Standard Product Warranty Accrual [Roll Forward] Movement in Standard Product Warranty Accrual [Roll Forward] Balance at beginning of period Standard Product Warranty Accrual Provision Standard Product Warranty Accrual, Increase for Warranties Issued Warranty usage Standard Product Warranty Accrual, Decrease for Payments Balance at end of period Operating Lease, Payments Operating Lease, Payments Right-of-Use Asset Obtained in Exchange for Operating Lease Liability Right-of-Use Asset Obtained in Exchange for Operating Lease Liability Statement of Financial Position [Abstract] ASSETS Assets [Abstract] Current assets: Assets, Current [Abstract] Cash and cash equivalents Cash and Cash Equivalents, at Carrying Value Short term investments Available-for-sale Securities, Current Accounts receivable, net Accounts Receivable, Net, Current Inventory Other current assets Other Assets, Current Total current assets Assets, Current Property and equipment, net Property, Plant and Equipment, Net Operating lease right-of-use assets Deferred tax assets Deferred Tax Assets, Net, Noncurrent Intangible assets, net Finite-Lived Intangible Assets, Net Other assets Other Assets, Noncurrent Total assets Assets LIABILITIES, REDEEMABLE CONVERTIBLE PREFERRED STOCK AND STOCKHOLDERS' EQUITY Liabilities and Equity [Abstract] Current liabilities: Liabilities, Current [Abstract] Accounts payable Accounts Payable, Current Accrued expenses Deferred revenue and customer advances Deferred Revenue Total current liabilities Liabilities, Current Operating lease liabilities Operating Lease, Liability, Noncurrent Deferred tax liabilities Deferred Income Tax Liabilities, Net Other long-term liabilities Other Liabilities, Noncurrent Total long-term liabilities Liabilities, Noncurrent Total liabilities Liabilities Commitments and contingencies (Note 11) Commitments and Contingencies Preferred stock, 5,000 shares authorized and none outstanding Preferred Stock, Value, Issued Common stock, $0.01 par value, 100,000 shares authorized; 28,123 and 27,788 shares issued and outstanding, respectively Common Stock, Value, Issued Additional paid-in capital Additional Paid in Capital, Common Stock Retained earnings Retained Earnings (Accumulated Deficit) Accumulated other comprehensive loss Accumulated Other Comprehensive Income (Loss), Net of Tax Total stockholders’ equity Total liabilities and stockholders’ equity Liabilities and Equity Outstanding POs [Abstract] Outstanding POs [Abstract] Contractual Obligation Contractual Obligation Contract with Customer, Asset and Liability [Table Text Block] Contract with Customer, Asset and Liability [Table Text Block] Industry Segment, Geographic Information and Significant Customers Segment Reporting Disclosure [Text Block] Fair Value Footnote [Abstract] Fair Value Footnote [Abstract] Fair Value Disclosures [Text Block] Fair Value Disclosures [Text Block] Document Documentand Entity Information [Abstract] Document Documentand Entity Information [Abstract] Document Information [Table] Document Information [Table] Entity Information [Line Items] Entity Information [Line Items] Document Transition Report Document Transition Report Document Quarterly Report Document Quarterly Report Title of 12(b) Security Title of 12(b) Security Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Entity Tax Identification Number Entity Tax Identification Number Document Type Document Type Amendment Flag Amendment Flag Entity File Number Entity File Number Entity Address, Address Line One Entity Address, Address Line One Entity Address, City or Town Entity Address, City or Town Entity Address, State or Province Entity Address, State or Province Entity Address, Postal Zip Code Entity Address, Postal Zip Code City Area Code City Area Code Local Phone Number Local Phone Number Document Fiscal Year Focus Document Fiscal Year Focus Document Fiscal Period Focus Document Fiscal Period Focus Trading Symbol Trading Symbol Entity Registrant Name Entity Registrant Name Entity Central Index Key Entity Central Index Key Current Fiscal Year End Date Current Fiscal Year End Date Entity Shell Company Entity Shell Company Entity Small Business Entity Small Business Entity Emerging Growth Company Entity Emerging Growth Company Entity Current Reporting Status Entity Current Reporting Status Entity Interactive Data Current Entity Interactive Data Current Entity Filer Category Entity Filer Category Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Security Exchange Name Security Exchange Name Income Statement [Abstract] Product and Service [Axis] Product and Service [Axis] Product and Service [Domain] Product and Service [Domain] Cost of product revenue Cost of product revenue Cost of product revenue Amortization of acquired intangible assets Cost, Amortization Research and development Selling and marketing General and administrative Amortization of acquired intangible assets Amortization of Intangible Assets, Nonproduction Amortization of Intangible Assets, Nonproduction Total operating expenses Operating Expenses Operating income Operating Income (Loss) Other income, net Income before income taxes Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Income tax (benefit) expense Income Tax Expense (Benefit) Basic Earnings Per Share, Basic Diluted Earnings Per Share, Diluted Basic Weighted Average Number of Shares Outstanding, Basic Diluted Weighted Average Number of Shares Outstanding, Diluted Equity and cost method investments [Abstract] Equity and cost method investments [Abstract] Equity Securities without Readily Determinable Fair Value, Amount Equity Securities without Readily Determinable Fair Value, Amount Income Tax Disclosure [Abstract] Income Tax Disclosure [Text Block] Income Tax Disclosure [Text Block] Disclosure Other Intangible Assets [Abstract] Disclosure Other Intangible Assets [Abstract] Schedule of Finite-Lived Intangible Assets [Table] Schedule of Finite-Lived Intangible Assets [Table] Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets, Major Class Name [Domain] Completed technology Patented Technology [Member] Trade Names Trade Names [Member] Customer-Related Intangible Assets [Member] Customer-Related Intangible Assets [Member] Distribution Rights [Member] Distribution Rights [Member] Noncompete Agreements [Member] Noncompete Agreements [Member] Finite-Lived Intangible Assets [Line Items] Finite-Lived Intangible Assets [Line Items] Finite-Lived Intangible Assets, Gross Finite-Lived Intangible Assets, Gross Intangible assets accumulated amortization Finite-Lived Intangible Assets, Accumulated Amortization Intangible Assets, Net Preferred stock, shares authorized Preferred Stock, Shares Authorized Preferred stock, shares outstanding Preferred Stock, Shares Outstanding Common stock, par value Common Stock, Par or Stated Value Per Share Common stock, shares authorized Common Stock, Shares Authorized Common stock, shares issued Common stock, shares outstanding Common Stock, Shares, Outstanding Finite-lived intangible assets, schedule of amortization expense [Table] Finite-lived intangible assets, schedule of amortization expense [Table] Finite-lived intangible assets, schedule of amortization expense [Table] Operating Expense [Member] Operating Expense [Member] Finite-lived intangible assets, schedule of amortization expense [Line Items] Finite-lived intangible assets, schedule of amortization expense [Line Items] [Line Items] for Finite-lived intangible assets, schedule of amortization expense [Table] Remainder of 2018 Finite-Lived Intangible Assets, Amortization Expense, Remainder of Fiscal Year 2019 Finite-Lived Intangible Assets, Amortization Expense, Year Two 2020 Finite-Lived Intangible Assets, Amortization Expense, Year Three 2021 Finite-Lived Intangible Assets, Amortization Expense, Year Four 2022 Finite-Lived Intangible Assets, Amortization Expense, Year Five Thereafter Finite-Lived Intangible Assets, Amortization Expense, after Year Five Total Finite-lived intangible assets, future amortization total Finite-lived intangible assets, future amortization total Revenue from Contract with Customer [Text Block] Revenue from Contract with Customer [Text Block] Effective Income Tax Rate Reconciliation, Percent Effective Income Tax Rate Reconciliation, Percent Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year Lessee, Operating Lease, Liability, Payments, Due Year Two Lessee, Operating Lease, Liability, Payments, Due Year Two Lessee, Operating Lease, Liability, Payments, Due Year Three Lessee, Operating Lease, Liability, Payments, Due Year Three Lessee, Operating Lease, Liability, Payments, Due Year Four Lessee, Operating Lease, Liability, Payments, Due Year Four Lessee, Operating Lease, Liability, Payments, Due Year Five Lessee, Operating Lease, Liability, Payments, Due Year Five Lessee, Operating Lease, Liability, Payments, Due after Year Five Lessee, Operating Lease, Liability, Payments, Due after Year Five Lessee, Operating Lease, Liability, Payments, Due Lessee, Operating Lease, Liability, Payments, Due Lessee, Operating Lease, Liability, Undiscounted Excess Amount Lessee, Operating Lease, Liability, Undiscounted Excess Amount Operating Lease, Liability, Noncurrent Stock Repurchase Program, Authorized Amount Stock Repurchase Program, Authorized Amount Stock Repurchased and Retired During Period, Shares Stock Repurchased and Retired During Period, Value Schedule of Cash Flow Hedges Included in Accumulated Other Comprehensive Income (Loss) [Table Text Block] Schedule of Cash Flow Hedges Included in Accumulated Other Comprehensive Income (Loss) [Table Text Block] Schedule of Derivative Instruments [Table Text Block] Schedule of Derivative Instruments [Table Text Block] Revenue, Judgment [Abstract] Revenue, Judgment [Abstract] Disclosure Basic And Diluted Net Income Per Share [Abstract] Disclosure - Basic and Diluted Net Income Per Share [Abstract] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items] Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items] Weighted-average shares outstanding Dilutive effect of employee stock options and restricted shares Weighted Average Number Diluted Shares Outstanding Adjustment Diluted weighted-average shares outstanding Basic income per share Diluted income per share Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Revenue, Remaining Performance Obligation, Amount Revenue, Remaining Performance Obligation, Amount Accounts Receivable, Net, Current Contract with Customer, Liability, Revenue Recognized Contract with Customer, Liability, Revenue Recognized Contract with Customer, Liability Contract with Customer, Liability Statement of Cash Flows [Abstract] Cash flows from operating activities: Net Cash Provided by (Used in) Operating Activities [Abstract] Adjustments to reconcile net income to net cash provided by operating activities, net of the effects of acquisition: Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Depreciation and amortization Depreciation, Depletion and Amortization Stock-based compensation Share-based Compensation Deferred income taxes, net Increase (Decrease) in Deferred Income Taxes Other Other Noncash Income (Expense) Changes in operating assets and liabilities — (use) source Increase (Decrease) in Operating Capital [Abstract] Accounts receivable Increase (Decrease) in Accounts Receivable Inventory Increase (Decrease) in Inventories Other current assets Increase (Decrease) in Other Operating Assets Accounts payable Increase (Decrease) in Accounts Payable Accrued expenses and other liabilities Increase (Decrease) in Other Accrued Liabilities Net cash provided by operating activities Net Cash Provided by (Used in) Operating Activities Cash flows from investing activities: Net Cash Provided by (Used in) Investing Activities [Abstract] Additions of property and equipment Payments to Acquire Property, Plant, and Equipment Change in other assets Payments for (Proceeds from) Other Investing Activities Proceeds from sale of equity investment Proceeds from Sale of Other Assets, Investing Activities Cash paid for business acquisition, net of cash acquired Payments to Acquire Businesses, Net of Cash Acquired Purchases of investments Payments to Acquire Available-for-sale Securities Sales and maturities of investments Proceeds from Sale and Maturity of Debt Securities, Available-for-sale Net cash used in investing activities Net Cash Provided by (Used in) Investing Activities Cash flows from financing activities: Net Cash Provided by (Used in) Financing Activities [Abstract] Proceeds from employee stock plans Proceeds from Stock Plans Income tax withholding payment associated with restricted stock vesting Payments Related to Tax Withholding for Share-based Compensation Stock repurchases Payments for Repurchase of Common Stock Net cash used in financing activities Net Cash Provided by (Used in) Financing Activities Effect of exchange rate changes on cash and cash equivalents Effect of Exchange Rate on Cash and Cash Equivalents Net increase (decrease) in cash and cash equivalents Cash and Cash Equivalents, Period Increase (Decrease) Cash and cash equivalents, at beginning of period Cash and cash equivalents, at end of period Supplemental disclosure of cash flow information: Supplemental Cash Flow Information [Abstract] Cash paid for income taxes Income Taxes Paid Additions of property and equipment included in accounts payable Noncash or Part Noncash Acquisition, Fixed Assets Acquired Goodwill, Other Intangible Assets and Other Assets Goodwill and Intangible Assets Disclosure [Text Block] EX-101.PRE 9 irbt-20190629_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT XML 10 irbt-201962910q_htm.xml IDEA: XBRL DOCUMENT 0001159167 2018-12-30 2019-06-29 0001159167 2019-07-27 0001159167 2019-06-29 0001159167 2018-12-29 0001159167 2019-03-31 2019-06-29 0001159167 2018-04-01 2018-06-30 0001159167 2017-12-31 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-12-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-12-30 2019-06-29 0001159167 us-gaap:CommonStockMember 2018-12-30 2019-06-29 0001159167 us-gaap:RetainedEarningsMember 2018-12-29 0001159167 us-gaap:RetainedEarningsMember 2018-12-30 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-06-29 0001159167 us-gaap:RetainedEarningsMember 2019-06-29 0001159167 us-gaap:CommonStockMember 2018-12-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-12-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-12-30 2019-06-29 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-06-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-03-31 2019-06-29 0001159167 us-gaap:CommonStockMember 2019-03-30 0001159167 us-gaap:RetainedEarningsMember 2019-03-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-03-31 2019-06-29 0001159167 us-gaap:AdditionalPaidInCapitalMember 2019-03-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-03-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-03-31 2019-06-29 0001159167 2019-03-30 0001159167 us-gaap:RetainedEarningsMember 2019-03-31 2019-06-29 0001159167 us-gaap:CommonStockMember 2017-12-31 2018-06-30 0001159167 2018-06-30 0001159167 us-gaap:CommonStockMember 2017-12-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2017-12-31 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2017-12-31 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2017-12-31 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2018-06-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2017-12-30 0001159167 us-gaap:CommonStockMember 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2017-12-30 0001159167 2017-12-30 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2017-12-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-03-31 0001159167 us-gaap:CommonStockMember 2018-03-31 0001159167 us-gaap:CommonStockMember 2018-04-01 2018-06-30 0001159167 us-gaap:AdditionalPaidInCapitalMember 2018-04-01 2018-06-30 0001159167 us-gaap:RetainedEarningsMember 2018-03-31 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-04-01 2018-06-30 0001159167 2018-03-31 0001159167 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2018-03-31 0001159167 us-gaap:RetainedEarningsMember 2018-04-01 2018-06-30 0001159167 country:US 2017-12-31 2018-06-30 0001159167 us-gaap:EMEAMember 2018-04-01 2018-06-30 0001159167 irbt:AllOtherRegionsMember 2017-12-31 2018-06-30 0001159167 irbt:AllOtherRegionsMember 2019-03-31 2019-06-29 0001159167 country:US 2018-04-01 2018-06-30 0001159167 us-gaap:EMEAMember 2019-03-31 2019-06-29 0001159167 country:US 2019-03-31 2019-06-29 0001159167 country:US 2018-12-30 2019-06-29 0001159167 us-gaap:EMEAMember 2017-12-31 2018-06-30 0001159167 us-gaap:EMEAMember 2018-12-30 2019-06-29 0001159167 irbt:AllOtherRegionsMember 2018-12-30 2019-06-29 0001159167 irbt:AllOtherRegionsMember 2018-04-01 2018-06-30 0001159167 2018-12-30 0001159167 us-gaap:NoncompeteAgreementsMember 2019-06-29 0001159167 us-gaap:TradeNamesMember 2018-12-29 0001159167 us-gaap:CustomerRelatedIntangibleAssetsMember 2019-06-29 0001159167 us-gaap:PatentedTechnologyMember 2018-12-29 0001159167 us-gaap:DistributionRightsMember 2019-06-29 0001159167 us-gaap:CustomerRelatedIntangibleAssetsMember 2018-12-29 0001159167 us-gaap:NoncompeteAgreementsMember 2018-12-29 0001159167 us-gaap:PatentedTechnologyMember 2019-06-29 0001159167 us-gaap:TradeNamesMember 2019-06-29 0001159167 us-gaap:DistributionRightsMember 2018-12-29 0001159167 us-gaap:CostOfSalesMember 2019-06-29 0001159167 us-gaap:OperatingExpenseMember 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2018-04-01 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2017-12-31 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2018-12-30 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember 2019-03-31 2019-06-29 0001159167 us-gaap:OtherNoncurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherNoncurrentLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherNoncurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember 2019-06-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:OtherNoncurrentLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:AccruedLiabilitiesMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:OtherCurrentAssetsMember us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2018-12-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2018-04-01 2018-06-30 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2019-03-31 2019-06-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2018-12-30 2019-06-29 0001159167 us-gaap:OtherNonoperatingIncomeExpenseMember 2017-12-31 2018-06-30 0001159167 us-gaap:NondesignatedMember 2019-06-29 0001159167 us-gaap:NondesignatedMember 2018-12-29 0001159167 us-gaap:DesignatedAsHedgingInstrumentMember 2019-06-29 0001159167 us-gaap:DesignatedAsHedgingInstrumentMember 2018-12-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2019-03-31 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2018-04-01 2018-06-30 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:CostOfSalesMember 2019-03-31 2019-06-29 0001159167 us-gaap:ForeignExchangeForwardMember us-gaap:CashFlowHedgingMember us-gaap:SalesRevenueNetMember 2018-04-01 2018-06-30 0001159167 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2019-06-29 0001159167 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2018-12-29 0001159167 2018-02-27 0001159167 2017-12-31 2018-12-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2019-03-31 2019-06-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2018-12-30 2019-06-29 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2018-04-01 2018-06-30 0001159167 irbt:AmazonMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2017-12-31 2018-06-30 pure irbt:segment shares iso4217:USD shares iso4217:USD false --12-28 Q2 2019 0001159167 30035000 24018000 0.01 0.01 100000000 100000000 27788000 28123000 27788000 28123000 5000000 5000000 10-Q true 2019-06-29 false 001-36414 iROBOT CORPORATION DE 77-0259335 8 Crosby Drive Bedford MA 01730 781 430-3000 Common Stock, $0.01 par value IRBT NASDAQ Yes Yes Large Accelerated Filer false false false 28123937 132795000 130373000 23984000 31605000 90401000 162166000 192010000 164633000 41960000 25660000 481150000 514437000 71728000 57026000 50002000 0 33862000 36979000 120538000 118896000 18636000 24273000 25099000 15350000 801015000 766961000 86848000 136742000 63629000 71259000 2101000 5756000 152578000 213757000 58068000 0 2110000 4005000 8683000 13877000 68861000 17882000 221439000 231639000 0 0 281000 278000 184663000 172771000 396748000 367021000 -2116000 -4748000 579576000 535322000 801015000 766961000 260172000 226317000 497833000 443385000 138891000 103712000 253929000 200213000 3111000 4679000 6188000 9461000 142002000 108391000 260117000 209674000 118170000 117926000 237716000 233711000 35650000 34924000 70919000 67869000 56409000 45910000 95245000 77239000 20592000 23468000 43499000 49301000 269000 269000 540000 542000 112920000 104571000 210203000 194951000 5250000 13355000 27513000 38760000 1533000 1507000 2813000 2026000 6783000 14862000 30326000 40786000 -424000 4391000 599000 9914000 7207000 10471000 29727000 30872000 0.26 0.38 1.06 1.11 0.25 0.37 1.03 1.08 28079000 27615000 27970000 27802000 28763000 28337000 28779000 28658000 7207000 10471000 29727000 30872000 1794000 -11123000 -676000 -5785000 -1540000 1619000 3261000 -232000 267000 169000 161000 -421000 95000 87000 208000 -85000 7289000 885000 32359000 25191000 28038000 280000 175000000 389541000 -2198000 562623000 39000 0 2117000 2117000 47000 1000 -1000 0 7594000 7594000 -1000 0 -65000 -65000 82000 82000 18000 18000 7207000 7207000 28123000 281000 184663000 396748000 -2116000 579576000 27788000 278000 172771000 367021000 -4748000 535322000 116000 1000 4679000 4680000 278000 3000 -3000 0 14458000 14458000 -59000 -1000 -7276000 -7277000 2632000 2632000 34000 34000 29727000 29727000 28123000 281000 184663000 396748000 -2116000 579576000 28073000 280000 191021000 299430000 5897000 496628000 56000 1000 2205000 2206000 43000 1000 -1000 0 6431000 6431000 -1000 0 -54000 -54000 -9587000 -9587000 16000 16000 769000 8000 48062000 48070000 10471000 10471000 27402000 274000 151556000 309901000 -3690000 458041000 27945000 279000 190067000 277989000 1992000 470327000 67000 1000 2604000 2605000 240000 2000 -2000 0 12377000 12377000 -51000 0 -3532000 -3532000 -5682000 -5682000 34000 34000 799000 8000 49992000 50000000 1040000 1040000 30872000 30872000 27402000 274000 151556000 309901000 -3690000 458041000 29727000 30872000 17905000 17606000 14458000 12377000 -535000 4208000 -3106000 -384000 -67808000 -66085000 27112000 10303000 14246000 12764000 -52835000 -46519000 -18043000 -27211000 21303000 26319000 14705000 14284000 4541000 1837000 0 629000 2817000 0 0 6438000 5880000 7000000 -16183000 -14930000 4680000 2605000 7277000 3532000 0 50000000 -2597000 -50927000 -101000 -314000 2422000 -39852000 130373000 128635000 132795000 88783000 4746000 1537000 Description of Business<div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">iRobot Corporation ("iRobot" or the "Company") designs and builds robots that empower people to do more. The Company develops robotic technology and applies it to produce and market consumer robots. The Company’s revenue is primarily generated from product sales through distributor and retail sales channels, as well as its on-line stores.</span></div> Summary of Significant Accounting Policies<div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Basis of Presentation</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The accompanying consolidated financial statements include those of iRobot and its subsidiaries, after elimination of all intercompany balances and transactions. iRobot has prepared the accompanying unaudited consolidated financial statements in conformity with accounting principles generally accepted in the United States of America ("GAAP"). In addition, certain prior year amounts have been reclassified to conform to the current year presentation. </span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In the opinion of management, all adjustments necessary to the unaudited interim consolidated financial statements have been made to state fairly the Company's financial position. Interim results are not necessarily indicative of results for the full fiscal year or any future periods. The information included in this Form 10-Q should be read in conjunction with the Company's audited consolidated financial statements and notes thereto included in its Annual Report on Form 10-K for the fiscal year ended </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, filed with the Securities and Exchange Commission on February 14, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company operates and reports using a 52-53 week fiscal year ending on the Saturday closest to December 31. Accordingly, the Company’s fiscal quarters end on the Saturday that falls closest to the last day of the third month of each quarter.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Use of Estimates</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The preparation of these financial statements in conformity with GAAP requires the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition, including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs; valuation of goodwill and acquired intangible assets; valuation of financial instruments; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. The Company bases these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that the Company believes are reasonable under the circumstances. Actual results may differ from the Company’s estimates.</span></div><div style="line-height:120%;padding-top:6px;text-indent:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Other Assets</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company holds non-marketable equity securities as part of its strategic investments portfolio. The Company classifies its cost method investments as equity securities without readily determinable fair values and measures these investments at cost, less any impairment, adjusted for observable price changes. At June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, other assets consisted primarily of equity securities without readily determinable fair values and an equity method investment totaling </span><span style="font-family:inherit;font-size:10pt;"><span>$21.6 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$15.1 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Net Income Per Share</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Basic income per share is calculated using the Company's weighted-average outstanding common shares. Diluted income</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">per share is calculated using the Company's weighted-average outstanding common shares including the dilutive effect of stock</span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">awards as determined under the treasury stock method. </span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table presents the calculation of both basic and diluted net income per share (in thousands, except per share amounts):</span><span style="font-family:inherit;font-size:9pt;"> </span></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:47%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,207</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>10,471</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>29,727</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>30,872</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Weighted-average common shares outstanding</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,079</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,615</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,970</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,802</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Dilutive effect of employee stock awards</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>684</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>722</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>809</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>856</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Diluted weighted-average common shares outstanding</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,763</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,337</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,779</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,658</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Basic income per share</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.38</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.06</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.11</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Diluted income per share</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.25</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.37</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.03</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.08</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Employee stock awards representing approximately </span><span style="font-family:inherit;font-size:10pt;"><span>0.2 million</span></span><span style="font-family:inherit;font-size:10pt;"> shares of common stock for the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, and approximately </span><span style="font-family:inherit;font-size:10pt;"><span>0.1 million</span></span><span style="font-family:inherit;font-size:10pt;"> shares of common stock for the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, were excluded from the computation of diluted earnings per share as their effect would have been antidilutive. </span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Recently Adopted Accounting Standards</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In June 2018, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2018-07, "Compensation - Stock Compensation: Improvements to Nonemployee Share-Based Payment Accounting (Topic 718)." The amendments in ASU No. 2018-07 expand the scope of Topic 718 to include share-based payments issued to nonemployees for goods or services. The amendments in this ASU are effective for annual periods beginning after December 15, 2018 and interim periods within those annual periods, with early adoption permitted. The Company adopted this standard effective December 30, 2018 which did not have a material impact on the Company's consolidated financial statements and related disclosures.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:11pt;"><span style="font-family:inherit;font-size:10pt;">In February 2016, the FASB issued ASU No. 2016-02 "Leases." This ASU and subsequently issued amendments require lessees to recognize the assets and liabilities on their balance sheet for the rights and obligations created by most leases and continue to recognize expenses on their income statements over the lease term. The standard also requires disclosures designed to give financial statement users information on the amount, timing and uncertainty of cash flows arising from leases. In July 2018, the FASB issued ASU No. 2018-11, "Leases (Topic 842): Targeted Improvements," which provides an alternative transition method that entities can elect when adopting the new standard. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company adopted the standard effective December 30, 2018 using the alternative transition method which resulted in the recognition of operating lease right-of-use assets and operating lease liabilities of approximately $52.8 million and $67.3 million, respectively. The Company's consolidated financial statements as of and for the three and six months ended June 29, 2019 are presented under the new standard, while the comparative quarter presented is not adjusted and continues to be reported in accordance with the historical accounting policy. See Note 4, "Leases," for the required disclosures related to the impact of adopting this standard and a discussion of the Company's updated policies related to lease accounting.</span><span style="font-family:inherit;font-size:11pt;"> </span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Recently Issued Accounting Standards</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In August 2018, the FASB issued ASU No. 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software." The new standard aligns 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 (and hosting arrangements that include an internal use software license). The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019, with early adoption permitted. Implementation should be applied either retrospectively or prospectively to all implementation costs incurred after the date of adoption. The Company is currently evaluating the impact of the standard on its consolidated financial statements.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In August 2018, the FASB issued ASU No. 2018-13, "Fair Value Measurement: Disclosure Framework—Changes to the Disclosure Requirements for Fair Value Measurement." The amendment modifies disclosure requirements related to fair value measurement. The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019. Implementation on a prospective or retrospective basis varies by specific disclosure requirement. Early adoption is permitted. The standard also allows for early adoption of any removed or modified disclosures upon issuance of this ASU while delaying adoption of the additional disclosures until their effective date. The Company does not believe this amendment will have a material impact on its consolidated financial statements.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In June 2016, the FASB issued ASU No. 2016-13, "Measurement of Credit Losses on Financial Instruments," as clarified in ASU No. 2019-04 and ASU No. 2019-05. The guidance amends the impairment model by requiring entities to use a forward-</span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">looking approach based on expected losses rather than incurred losses to estimate credit losses on certain types of financial instruments. This may result in the earlier recognition of allowances for losses. The guidance is effective for fiscal years beginning after December 15, 2019, including interim periods within those fiscal years, with early adoption permitted. The Company is currently evaluating the impact of the standards on its consolidated financial statements. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">From time to time, new accounting pronouncements are issued by FASB that are adopted by the Company as of the specified effective date. Unless otherwise discussed, the Company believes that recently issued standards, which are not yet effective, will not have a material impact on the Company’s consolidated financial statements upon adoption.</span></div> <div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Basis of Presentation</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The accompanying consolidated financial statements include those of iRobot and its subsidiaries, after elimination of all intercompany balances and transactions. iRobot has prepared the accompanying unaudited consolidated financial statements in conformity with accounting principles generally accepted in the United States of America ("GAAP"). In addition, certain prior year amounts have been reclassified to conform to the current year presentation. </span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In the opinion of management, all adjustments necessary to the unaudited interim consolidated financial statements have been made to state fairly the Company's financial position. Interim results are not necessarily indicative of results for the full fiscal year or any future periods. The information included in this Form 10-Q should be read in conjunction with the Company's audited consolidated financial statements and notes thereto included in its Annual Report on Form 10-K for the fiscal year ended </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, filed with the Securities and Exchange Commission on February 14, 2019.</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company operates and reports using a 52-53 week fiscal year ending on the Saturday closest to December 31. Accordingly, the Company’s fiscal quarters end on the Saturday that falls closest to the last day of the third month of each quarter.</span></div> <div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Use of Estimates</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The preparation of these financial statements in conformity with GAAP requires the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition, including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs; valuation of goodwill and acquired intangible assets; valuation of financial instruments; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. The Company bases these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that the Company believes are reasonable under the circumstances. Actual results may differ from the Company’s estimates.</span></div> <div style="line-height:120%;padding-top:6px;text-indent:16px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Other Assets</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company holds non-marketable equity securities as part of its strategic investments portfolio. The Company classifies its cost method investments as equity securities without readily determinable fair values and measures these investments at cost, less any impairment, adjusted for observable price changes. At June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, other assets consisted primarily of equity securities without readily determinable fair values and an equity method investment totaling </span><span style="font-family:inherit;font-size:10pt;"><span>$21.6 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$15.1 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively.</span></div> 21600000 15100000 <div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Net Income Per Share</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Basic income per share is calculated using the Company's weighted-average outstanding common shares. Diluted income</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">per share is calculated using the Company's weighted-average outstanding common shares including the dilutive effect of stock</span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">awards as determined under the treasury stock method. </span></div><div style="line-height:120%;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table presents the calculation of both basic and diluted net income per share (in thousands, except per share amounts):</span><span style="font-family:inherit;font-size:9pt;"> </span></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:47%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Net income</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,207</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>10,471</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>29,727</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>30,872</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Weighted-average common shares outstanding</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,079</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,615</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,970</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,802</span></span></div></td><td style="vertical-align:bottom;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Dilutive effect of employee stock awards</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>684</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>722</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>809</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>856</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Diluted weighted-average common shares outstanding</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,763</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,337</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,779</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,658</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Basic income per share</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.26</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.38</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.06</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:3px double #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.11</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Diluted income per share</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.25</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>0.37</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.03</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1.08</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><span style="font-family:inherit;font-size:10pt;">Employee stock awards representing approximately </span><span style="font-family:inherit;font-size:10pt;"><span>0.2 million</span></span><span style="font-family:inherit;font-size:10pt;"> shares of common stock for the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, and approximately </span><span style="font-family:inherit;font-size:10pt;"><span>0.1 million</span></span><span style="font-family:inherit;font-size:10pt;"> shares of common stock for the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span>, were excluded from the computation of diluted earnings per share as their effect would have been antidilutive. 7207000 10471000 29727000 30872000 28079000 27615000 27970000 27802000 684000 722000 809000 856000 28763000 28337000 28779000 28658000 0.26 0.38 1.06 1.11 0.25 0.37 1.03 1.08 200000 100000 <div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Recently Adopted Accounting Standards</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In June 2018, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2018-07, "Compensation - Stock Compensation: Improvements to Nonemployee Share-Based Payment Accounting (Topic 718)." The amendments in ASU No. 2018-07 expand the scope of Topic 718 to include share-based payments issued to nonemployees for goods or services. The amendments in this ASU are effective for annual periods beginning after December 15, 2018 and interim periods within those annual periods, with early adoption permitted. The Company adopted this standard effective December 30, 2018 which did not have a material impact on the Company's consolidated financial statements and related disclosures.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:11pt;"><span style="font-family:inherit;font-size:10pt;">In February 2016, the FASB issued ASU No. 2016-02 "Leases." This ASU and subsequently issued amendments require lessees to recognize the assets and liabilities on their balance sheet for the rights and obligations created by most leases and continue to recognize expenses on their income statements over the lease term. The standard also requires disclosures designed to give financial statement users information on the amount, timing and uncertainty of cash flows arising from leases. In July 2018, the FASB issued ASU No. 2018-11, "Leases (Topic 842): Targeted Improvements," which provides an alternative transition method that entities can elect when adopting the new standard. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company adopted the standard effective December 30, 2018 using the alternative transition method which resulted in the recognition of operating lease right-of-use assets and operating lease liabilities of approximately $52.8 million and $67.3 million, respectively. The Company's consolidated financial statements as of and for the three and six months ended June 29, 2019 are presented under the new standard, while the comparative quarter presented is not adjusted and continues to be reported in accordance with the historical accounting policy. See Note 4, "Leases," for the required disclosures related to the impact of adopting this standard and a discussion of the Company's updated policies related to lease accounting.</span><span style="font-family:inherit;font-size:11pt;"> </span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Recently Issued Accounting Standards</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In August 2018, the FASB issued ASU No. 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software." The new standard aligns 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 (and hosting arrangements that include an internal use software license). The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019, with early adoption permitted. Implementation should be applied either retrospectively or prospectively to all implementation costs incurred after the date of adoption. The Company is currently evaluating the impact of the standard on its consolidated financial statements.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In August 2018, the FASB issued ASU No. 2018-13, "Fair Value Measurement: Disclosure Framework—Changes to the Disclosure Requirements for Fair Value Measurement." The amendment modifies disclosure requirements related to fair value measurement. The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019. Implementation on a prospective or retrospective basis varies by specific disclosure requirement. Early adoption is permitted. The standard also allows for early adoption of any removed or modified disclosures upon issuance of this ASU while delaying adoption of the additional disclosures until their effective date. The Company does not believe this amendment will have a material impact on its consolidated financial statements.</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">In June 2016, the FASB issued ASU No. 2016-13, "Measurement of Credit Losses on Financial Instruments," as clarified in ASU No. 2019-04 and ASU No. 2019-05. The guidance amends the impairment model by requiring entities to use a forward-</span></div><div style="line-height:120%;padding-top:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">looking approach based on expected losses rather than incurred losses to estimate credit losses on certain types of financial instruments. This may result in the earlier recognition of allowances for losses. The guidance is effective for fiscal years beginning after December 15, 2019, including interim periods within those fiscal years, with early adoption permitted. The Company is currently evaluating the impact of the standards on its consolidated financial statements. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">From time to time, new accounting pronouncements are issued by FASB that are adopted by the Company as of the specified effective date. Unless otherwise discussed, the Company believes that recently issued standards, which are not yet effective, will not have a material impact on the Company’s consolidated financial statements upon adoption.</span></div> Revenue Recognition<div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company primarily derives its revenue from product sales. The Company sells products directly to consumers through on-line stores and indirectly through resellers and distributors. Revenue is recognized upon transfer of control of promised products or services to customers, generally as title and risk of loss passes, in an amount that reflects the consideration the Company expects to receive in exchange for those products or services. Taxes collected from customers, which are subsequently remitted to governmental authorities, are excluded from revenue. Shipping and handling expenses are considered fulfillment activities and are expensed as incurred. </span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s product portfolio includes various consumer robots, many of which are Wi-Fi connected. The consumer robots are generally highly dependent on, and interrelated with, the embedded software and cannot function without the software. As such, the consumer robots are accounted for as a single performance obligation, and the revenue is recognized at a point in time when the control is transferred to distributors, resellers or directly to end customers through on-line stores. For consumer robots with Wi-Fi capability ("connected robots"), each sale represents an arrangement with multiple promises consisting of the robot, an app, cloud services and potential future unspecified software upgrades. The Company has determined that the app, cloud services and potential future unspecified software upgrades represent one promised service to the customer to enhance the functionality and interaction with the robot (referred to collectively as "Cloud Services"). For certain connected robots, the Company has concluded that, on a quantitative and qualitative basis, the Cloud Services do not constitute a material performance obligation and, as such, these services are not considered a separate performance obligation that requires allocation of transaction price.</span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">During the third quarter of 2018, the Company launched Roomba i7 and i7+ which brought a new level of intelligence and automation to robotic vacuum cleaners with the ability to learn, map and adapt to a home's floor plan. The Company has concluded that beginning with this launch, the Cloud Services related to these new products are a material performance obligation. For contracts that contain multiple performance obligations, the transaction price is allocated to each performance obligation based on a relative standalone selling price ("SSP"). The SSP reflects the Company's best estimate of what the selling prices of performance obligations would be if they were sold regularly on a standalone basis. Revenue allocated to the robots is recognized at a point in time when control is transferred. Revenue allocated to the Cloud Services is deferred and recognized on a straight-line basis over the estimated period the software upgrades and services are expected to be provided. For contracts with a duration of greater than one year, the transaction price allocated to performance obligations that are unsatisfied as of June 29, 2019 is not material. The Company does not disclose the value of unsatisfied performance obligations for contracts with an original expected duration of one year or less.</span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s products generally carry a one-year limited warranty that promises customers that delivered products are as specified. The Company does not consider these assurance-type warranties as a separate performance obligation and therefore, the Company accounts for such warranties under ASC 460, "Guarantees."</span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Significant Judgments</span></div><div style="line-height:120%;padding-bottom:6px;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company provides limited rights of returns for direct-to-consumer sales generated through its on-line stores and certain resellers and distributors. In addition, the Company may provide other credits or incentives, including price protection, which are accounted for as variable consideration when estimating the amount of revenue to recognize. Where appropriate, these estimates take into consideration relevant factors such as the Company’s historical experience, current contractual requirements, specific known market events and trends and forecasted customer buying and payment patterns. Overall, these reserves reflect the Company’s best estimates, and the actual amounts of consideration ultimately received may differ from the Company’s estimates. Returns and credits are estimated at contract inception and updated at the end of each reporting period as additional information becomes available and only to the extent that it is probable that a significant reversal of any incremental revenue will not occur. As of June 29, 2019, the Company has reserves for product returns of </span><span style="font-family:inherit;font-size:10pt;"><span>$44.5 million</span></span><span style="font-family:inherit;font-size:10pt;"> and other credits and incentives of </span><span style="font-family:inherit;font-size:10pt;"><span>$69.7 million</span></span><span style="font-family:inherit;font-size:10pt;">. As of </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company had reserves for product returns of </span><span style="font-family:inherit;font-size:10pt;"><span>$53.9 million</span></span><span style="font-family:inherit;font-size:10pt;"> and other credits and incentives of </span><span style="font-family:inherit;font-size:10pt;"><span>$97.7 million</span></span><span style="font-family:inherit;font-size:10pt;">. Revenue recognized during the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;"> related to performance obligations satisfied in a prior period was not material. </span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Disaggregation of Revenue</span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table provides information about disaggregated revenue by geographical region (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;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="16"/></tr><tr><td style="width:49%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">United States</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>124,472</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>111,526</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>238,537</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>218,388</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">EMEA</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>82,893</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>70,123</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>157,462</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>139,710</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>52,807</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>44,668</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>101,834</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>85,287</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total revenue</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,172</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>226,317</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497,833</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>443,385</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:6px;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Contract Balances </span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table provides information about receivables and contract liabilities from contracts with customers (in thousands):</span></div><div style="line-height:120%;padding-bottom: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="8"/></tr><tr><td style="width:63%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accounts receivable, net</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>90,401</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>162,166</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Contract liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,075</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,756</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company invoices customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract liabilities primarily relate to prepayments received from customers in advance of product shipments. The change in the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and the customer’s payment. During the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company recognized </span><span style="font-family:inherit;font-size:10pt;"><span>$5.3 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$6.3 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively, of the contract liability balance as revenue upon transfer of the products to customers. During the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company recognized </span><span style="font-family:inherit;font-size:10pt;"><span>$5.8 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$6.7 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively, of the contract liability balance as revenue upon transfer of the products to customers. The Company does not assess whether a prepayment received represents a significant financing component as the period between when the payment is received and the transfer of the products to the customer is generally one year or less.</span></div> 44500000 69700000 53900000 97700000 <div style="line-height:120%;padding-bottom:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Disaggregation of Revenue</span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table provides information about disaggregated revenue by geographical region (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;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="16"/></tr><tr><td style="width:49%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:10%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">United States</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>124,472</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>111,526</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>238,537</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>218,388</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">EMEA</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>82,893</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>70,123</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>157,462</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>139,710</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>52,807</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>44,668</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>101,834</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>85,287</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total revenue</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,172</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>226,317</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497,833</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>443,385</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 124472000 111526000 238537000 218388000 82893000 70123000 157462000 139710000 52807000 44668000 101834000 85287000 260172000 226317000 497833000 443385000 <div style="line-height:120%;padding-bottom:6px;padding-top:8px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Contract Balances </span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table provides information about receivables and contract liabilities from contracts with customers (in thousands):</span></div><div style="line-height:120%;padding-bottom: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="8"/></tr><tr><td style="width:63%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:16%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accounts receivable, net</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>90,401</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>162,166</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Contract liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,075</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,756</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-bottom:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company invoices customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract liabilities primarily relate to prepayments received from customers in advance of product shipments. The change in the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and the customer’s payment. During the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company recognized </span><span style="font-family:inherit;font-size:10pt;"><span>$5.3 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$6.3 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively, of the contract liability balance as revenue upon transfer of the products to customers. During the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company recognized </span><span style="font-family:inherit;font-size:10pt;"><span>$5.8 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$6.7 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively, of the contract liability balance as revenue upon transfer of the products to customers. The Company does not assess whether a prepayment received represents a significant financing component as the period between when the payment is received and the transfer of the products to the customer is generally one year or less.</span></div> 90401000 162166000 3075000 5756000 5300000 6300000 5800000 6700000 Leases<div style="line-height:120%;padding-bottom:4px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company's leasing arrangements primarily consist of operating leases for its facilities which include corporate, sales and research and development offices. For leases with terms greater than 12 months, the Company records the related right-of-use asset and lease obligation at the present value of lease payments over the term. The Company's leases typically include rental escalation clauses, renewal options and/or termination options that are factored into the determination of lease payments when appropriate. The Company does not separate lease and nonlease components of contracts and excludes all variable lease payments from the measurement of right-of-use assets and lease liabilities. The Company's variable lease payments generally include usage based nonlease components. The Company's lease agreements do not contain any residual value guarantees or restrictive covenants. Leases with an initial term of 12 months or less are not recorded on the balance sheet; lease expense is recognized on a straight-line basis over the lease term. </span></div><div style="line-height:120%;padding-bottom:4px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company's existing leases do not provide a readily determinable implicit rate. Therefore, the Company estimates its incremental borrowing rate to discount the lease payments based on information available at December 30, 2018 (date of initial application) or the lease commencement date for existing leases upon adoption or new leases post adoption, respectively. At June 29, 2019, the Company's weighted average discount rate was </span><span style="font-family:inherit;font-size:10pt;"><span>3.61%</span></span><span style="font-family:inherit;font-size:10pt;">, while the weighted average remaining lease term was </span><span style="font-family:inherit;font-size:10pt;"><span>9.58</span></span><span style="font-family:inherit;font-size:10pt;"> years.</span></div><div style="line-height:120%;padding-bottom:4px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The components of lease expense were as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left: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="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating lease cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,969</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,939</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Variable lease cost</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,316</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,136</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total lease cost</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,285</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,075</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:6px;padding-top:16px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Supplemental cash flow information related to leases was as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left: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="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Cash paid for amounts included in the measurement of lease liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating cash flows from operating leases</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,865</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,881</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Right-of-use assets obtained in exchange for lease obligations:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating leases</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>52,767</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:6px;padding-top:16px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Maturities of operating lease liabilities were as follows as of June 29, 2019 (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:81%;"/><td style="width:1%;"/><td style="width:17%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Operating leases</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Remainder of 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,435</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2020</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,543</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2021</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,255</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2022</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,580</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2023</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,127</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Thereafter</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>41,198</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total minimum lease payments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>76,138</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Less: imputed interest</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>12,548</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Present value of future minimum lease payments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>63,590</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Less: current portion of operating lease liabilities (Note 7)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,522</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Long-term lease liabilities</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>58,068</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-bottom:6px;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Financial Statement Impact of Adopting ASC 842</span></div><div style="line-height:120%;padding-top:8px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company adopted ASC 842 effective December 30, 2018 using the alternative transition method. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company elected the package of practical expedients permitted under the transition guidance, which allowed the Company to carryforward its historical assessments of (1) whether contracts are or contain leases, (2) lease classification and (3) initial direct costs. In addition, the Company elected the practical expedient to use hindsight in determining lease term. The adoption of the new standard resulted in the recognition of right-of-use assets and lease liabilities of approximately </span><span style="font-family:inherit;font-size:10pt;"><span>$52.8 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$67.3 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively. The standard did not materially impact the Company's consolidated income or cash flows.</span></div> 0.0361 P9Y6M29D <div style="line-height:120%;padding-bottom:4px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The components of lease expense were as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left: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="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating lease cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,969</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,939</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Variable lease cost</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,316</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,136</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total lease cost</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,285</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,075</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 1969000 3939000 1316000 2136000 3285000 6075000 <div style="line-height:120%;padding-bottom:6px;padding-top:16px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Supplemental cash flow information related to leases was as follows (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left: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="8"/></tr><tr><td style="width:67%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Cash paid for amounts included in the measurement of lease liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating cash flows from operating leases</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,865</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,881</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Right-of-use assets obtained in exchange for lease obligations:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Operating leases</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>52,767</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 2865000 4881000 0 52767000 <div style="line-height:120%;padding-bottom:6px;padding-top:16px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Maturities of operating lease liabilities were as follows as of June 29, 2019 (in thousands):</span></div><div style="line-height:120%;padding-bottom:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:81%;"/><td style="width:1%;"/><td style="width:17%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Operating leases</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Remainder of 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,435</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2020</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,543</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2021</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,255</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2022</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,580</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2023</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,127</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Thereafter</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>41,198</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total minimum lease payments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>76,138</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Less: imputed interest</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>12,548</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Present value of future minimum lease payments</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>63,590</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Less: current portion of operating lease liabilities (Note 7)</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,522</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Long-term lease liabilities</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>58,068</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 3435000 8543000 8255000 7580000 7127000 41198000 76138000 12548000 63590000 5522000 58068000 52800000 67300000 Inventory<div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Inventory consists of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Raw materials</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,922</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,992</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Finished goods</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>189,088</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>161,641</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>192,010</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>164,633</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> Inventory<div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Inventory consists of the following (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Raw materials</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,922</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,992</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Finished goods</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>189,088</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>161,641</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>192,010</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>164,633</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 2922000 2992000 189088000 161641000 192010000 164633000 Goodwill and Other Intangible Assets<div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table summarizes the activity in the carrying amount of goodwill for the six months ended June 29, 2019 (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:84%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of December 29, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>118,896</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Acquisition</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,050</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Effect of foreign currency translation</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(408</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of June 29, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>120,538</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Intangible assets at June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;"> consisted of the following (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:left;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:33%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Net</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Net</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Completed technology</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,100</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>23,396</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,704</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>26,900</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>21,607</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,293</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Tradename</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,255</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,859</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,396</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,291</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,365</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,926</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Reacquired distribution rights</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>32,347</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,921</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,426</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>32,499</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>23,598</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,901</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Non-competition agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>262</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>152</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></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;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>263</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>153</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>72,064</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>53,428</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>18,636</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>71,053</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>46,780</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>24,273</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Amortization expense related to acquired intangible assets was </span><span style="font-family:inherit;font-size:10pt;"><span>$3.4</span></span><span style="font-family:inherit;font-size:10pt;"> million and </span><span style="font-family:inherit;font-size:10pt;"><span>$4.9</span></span><span style="font-family:inherit;font-size:10pt;"> million for the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, respectively. Amortization expense related to acquired intangible assets was </span><span style="font-family:inherit;font-size:10pt;"><span>$6.7 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$10.0 million</span></span><span style="font-family:inherit;font-size:10pt;"> for the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, respectively. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The estimated future amortization expense related to current intangible assets in each of the five succeeding fiscal years is expected to be as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:38%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost of Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Operating Expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Remainder of 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,635</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,132</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2020</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,140</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,016</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,156</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2021</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,140</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,932</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2022</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>915</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,707</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2023</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>240</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,032</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Thereafter</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>60</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,617</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,677</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,130</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,506</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>18,636</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> <div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table summarizes the activity in the carrying amount of goodwill for the six months ended June 29, 2019 (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:84%;"/><td style="width:1%;"/><td style="width:14%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of December 29, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>118,896</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Acquisition</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,050</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Effect of foreign currency translation</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(408</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of June 29, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>120,538</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 118896000 2050000 -408000 120538000 <div style="line-height:120%;padding-top:6px;text-align:left;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Intangible assets at June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;"> consisted of the following (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:left;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="24"/></tr><tr><td style="width:33%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:8%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Net</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Accumulated</span></div><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Amortization</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Net</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Completed technology</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>28,100</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>23,396</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,704</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>26,900</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>21,607</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,293</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Tradename</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>100</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Customer relationships</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,255</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,859</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,396</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,291</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,365</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,926</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Reacquired distribution rights</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>32,347</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>27,921</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,426</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>32,499</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>23,598</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>8,901</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Non-competition agreements</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>262</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>152</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></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;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>263</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>110</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>153</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>72,064</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>53,428</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>18,636</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>71,053</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>46,780</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>24,273</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 28100000 23396000 4704000 26900000 21607000 5293000 100000 100000 0 100000 100000 0 11255000 1859000 9396000 11291000 1365000 9926000 32347000 27921000 4426000 32499000 23598000 8901000 262000 152000 110000 263000 110000 153000 72064000 53428000 18636000 71053000 46780000 24273000 3400000 4900000 6700000 10000000.0 <div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The estimated future amortization expense related to current intangible assets in each of the five succeeding fiscal years is expected to be as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:38%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:18%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Cost of Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Operating Expenses</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Total</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Remainder of 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,635</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,132</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2020</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,140</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,016</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,156</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2021</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,140</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,932</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2022</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>915</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,707</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">2023</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>240</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>792</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,032</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Thereafter</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>60</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,617</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,677</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,130</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,506</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>18,636</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 5635000 497000 6132000 1140000 1016000 2156000 1140000 792000 1932000 915000 792000 1707000 240000 792000 1032000 60000 5617000 5677000 9130000 9506000 18636000 Accrued Expenses<div style="line-height:120%;padding-top:6px;text-align:left;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued expenses consisted of the following at (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued other compensation</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>12,241</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>10,518</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued warranty</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,964</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued direct fulfillment costs</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,543</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,372</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued bonus</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>21,226</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Current portion of operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,522</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued sales and other indirect taxes payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,931</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,397</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,547</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,936</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued accounting fees</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,020</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,052</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,941</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,794</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>63,629</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>71,259</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> <div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="8"/></tr><tr><td style="width:71%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued other compensation</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>12,241</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>10,518</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued warranty</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,964</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued direct fulfillment costs</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>9,543</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,372</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued bonus</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,914</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>21,226</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Current portion of operating lease liabilities</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,522</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued sales and other indirect taxes payable</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,931</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,397</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued income taxes</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,547</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,936</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued accounting fees</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,020</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,052</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued other</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>7,941</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>6,794</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>63,629</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>71,259</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 12241000 10518000 11970000 11964000 9543000 5372000 6914000 21226000 5522000 0 4931000 11397000 2547000 1936000 2020000 2052000 7941000 6794000 63629000 71259000 Derivative Instruments<div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company operates internationally and, in the normal course of business, is exposed to fluctuations in foreign currency exchange rates. The foreign currency exposures typically arise from transactions denominated in currencies other than the functional currency of the Company's operations, primarily the Japanese Yen, Canadian Dollar, British Pound and the Euro. The Company uses derivative instruments that are designated in cash flow hedge relationships to reduce or eliminate the effects of foreign exchange rate changes on sales and purchases. These contracts typically have maturities of thirty-seven months or less. At June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company had outstanding cash flow hedges with a total notional value of </span><span style="font-family:inherit;font-size:10pt;"><span>$389.9 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$366.7 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively. </span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company also enters into economic hedges that are not designated as hedges from an accounting standpoint to reduce or eliminate the effects of foreign exchange rate changes typically related to short term trade receivables and payables. These contracts typically have maturities of ten months or less. At June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company had outstanding economic hedges with a total notional value of </span><span style="font-family:inherit;font-size:10pt;"><span>$48.0 million</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>$56.0 million</span></span><span style="font-family:inherit;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The fair values of derivative instruments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:18px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="10"/></tr><tr><td style="width:45%;"/><td style="width:23%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Classification</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><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;"><span style="font-family:inherit;font-size:10pt;font-weight:bold;">Derivatives not designated as hedging instruments:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other current assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>480</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>551</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>598</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-weight:bold;">Derivatives designated as cash flow hedges:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other current assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,201</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>53</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,454</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>172</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,102</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>335</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Long-term liabilities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>833</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>795</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Gains (losses) associated with derivative instruments not designated as hedging instruments are as follows (in thousands):</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:98.2421875%;border-collapse:collapse;text-align:left;"><tr><td colspan="18"/></tr><tr><td style="width:27%;"/><td style="width:21%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Classification</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) recognized in income</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Other income, net</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(1,085</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>1,707</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(652</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>538</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:36%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in OCI on Derivative (1)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(2,054</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>2,154</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>4,350</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(560</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:88px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:64px;"><span style="font-family:inherit;font-size:10pt;">(1)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The amount represents the change in fair value of derivative contracts due to changes in spot rates.</span></div></td></tr></table><div style="line-height:120%;padding-top:12px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:40%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in earnings on cash flow hedging instruments</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Consolidated statements of income in which the effects of cash flow hedging instruments are recorded</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,172</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>142,002</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>226,317</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>108,391</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) on cash flow hedging relationships:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Amount of gain (loss) reclassified from AOCI into earnings</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>359</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(113</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:40%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in earnings on cash flow hedging instruments</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Consolidated statements of income in which the effects of cash flow hedging instruments are recorded</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497,833</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,117</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>443,385</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>209,674</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) on cash flow hedging relationships:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Amount of gain (loss) reclassified from AOCI into earnings</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>214</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(279</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(386</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 389900000 366700000 48000000.0 56000000.0 <div style="line-height:120%;padding-top:6px;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The fair values of derivative instruments are as follows (in thousands):</span></div><div style="line-height:120%;padding-top:18px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="10"/></tr><tr><td style="width:45%;"/><td style="width:23%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Fair Value</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Classification</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">December 29, 2018</span></div></td></tr><tr><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;"><span style="font-family:inherit;font-size:10pt;font-weight:bold;">Derivatives not designated as hedging instruments:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other current assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>480</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>551</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>598</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-weight:bold;">Derivatives designated as cash flow hedges:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other current assets</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,201</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>53</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Other assets</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,454</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>172</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Accrued expenses</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,102</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>335</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Long-term liabilities</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>833</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>795</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 480000 551000 598000 0 1201000 53000 3454000 172000 1102000 335000 833000 795000 <div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Gains (losses) associated with derivative instruments not designated as hedging instruments are as follows (in thousands):</span><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:98.2421875%;border-collapse:collapse;text-align:left;"><tr><td colspan="18"/></tr><tr><td style="width:27%;"/><td style="width:21%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:9%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Classification</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) recognized in income</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Other income, net</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(1,085</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>1,707</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(652</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>538</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:36%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in OCI on Derivative (1)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(2,054</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>2,154</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>4,350</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(560</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:88px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:64px;"><span style="font-family:inherit;font-size:10pt;">(1)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The amount represents the change in fair value of derivative contracts due to changes in spot rates.</span></div></td></tr></table><div style="line-height:120%;padding-top:12px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:40%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in earnings on cash flow hedging instruments</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Consolidated statements of income in which the effects of cash flow hedging instruments are recorded</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,172</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>142,002</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>226,317</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>108,391</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) on cash flow hedging relationships:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Amount of gain (loss) reclassified from AOCI into earnings</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>359</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(113</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>370</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:12px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:40%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:12%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in earnings on cash flow hedging instruments</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Revenue</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;">Cost of revenue</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Consolidated statements of income in which the effects of cash flow hedging instruments are recorded</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>497,833</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>260,117</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>443,385</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>209,674</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Gain (loss) on cash flow hedging relationships:</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:20px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts:</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Amount of gain (loss) reclassified from AOCI into earnings</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>214</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(279</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(386</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> -1085000 1707000 -652000 538000 <div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): </span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left: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="17"/></tr><tr><td style="width:36%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:13%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="15" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Gain (loss) recognized in OCI on Derivative (1)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" 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:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">Foreign currency forward contracts</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(2,054</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>2,154</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>4,350</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;"><span>(560</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:9.5pt;"><span style="font-family:inherit;font-size:9.5pt;">)</span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;font-size:10pt;padding-left:64px;"><span style="font-family:inherit;font-size:10pt;">(1)</span></div><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The amount represents the change in fair value of derivative contracts due to changes in spot rates.</span></div> -2054000 2154000 4350000 -560000 260172000 142002000 226317000 108391000 359000 0 -113000 370000 497833000 260117000 443385000 209674000 214000 0 -279000 -386000 Fair Value Measurements<div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s financial assets and liabilities measured at fair value on a recurring basis at June 29, 2019, were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:59%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Fair Value Measurements as of<br/>June 29, 2019</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"><br/></span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 1</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 2 (1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 3 (2)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Corporate and government bonds, $24,018 at cost (3)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>23,984</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Derivative instruments (Note 8)</span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,135</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total assets measured at fair value</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>29,119</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Derivative instruments (Note 8)</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,533</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total liabilities measured at fair value</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,533</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s financial assets and liabilities measured at fair value on a recurring basis at </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, were as follows (in thousands):</span></div><div style="line-height:120%;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="12"/></tr><tr><td style="width:59%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="11" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Fair Value Measurements as of<br/>December 29, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 1</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 2 (1)</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Level 3 (2)</span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Assets:</span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Money market funds</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,730</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Corporate and government bonds, $30,035 at cost</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>29,605</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Convertible note</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,000</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Derivative instruments (Note 8)</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>776</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total assets measured at fair value</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>3,730</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>30,381</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,000</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;height:20px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Liabilities:</span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td></tr><tr><td style="vertical-align:top;background-color:#cceeff;padding-left:28px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Derivative instruments (Note 8)</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,130</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:1px solid #000000;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Total liabilities measured at fair value</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>1,130</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div></div><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:40px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:16px;"><span style="font-family:inherit;font-size:10pt;">(1)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Level 2 fair value estimates are based on observable inputs other than quoted prices in active markets for identical assets and liabilities, quoted prices for identical or similar assets or liabilities in inactive markets, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:6px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:40px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:16px;"><span style="font-family:inherit;font-size:10pt;">(2)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Level 3 fair value estimates are based on inputs that are generally unobservable and typically reflect management’s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques, including option pricing and discounted cash flow models. Unobservable inputs used in the models are significant to the fair values of the assets and liabilities.</span></div></td></tr></table><table cellpadding="0" cellspacing="0" style="padding-top:4px;font-family:Times New Roman; font-size:10pt;"><tr><td style="width:40px;"/><td/></tr><tr><td style="vertical-align:top"><div style="line-height:120%;font-size:10pt;padding-left:16px;"><span style="font-family:inherit;font-size:10pt;">(3)</span></div></td><td style="vertical-align:top;"><div style="line-height:120%;text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">As of June 29, 2019, the Company’s investments had maturity dates ranging from August 2019 to March 2021.</span></div></td></tr></table><div style="line-height:120%;padding-top:4px;text-indent:48px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">    </span></div><div style="line-height:120%;padding-top:4px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The following table provides a summary of changes in fair value of our Level 3 investment for the six months ended June 29, 2019 (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:center;text-indent:0px;font-size:10pt;"><div style="padding-left: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:95.3125%;border-collapse:collapse;text-align:left;"><tr><td colspan="4"/></tr><tr><td style="width:81%;"/><td style="width:1%;"/><td style="width:17%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of December 29, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,000</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Conversion of convertible note</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(2,000</span></span></div></td><td style="vertical-align:bottom;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance as of June 29, 2019</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>—</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 0 23984000 0 0 5135000 0 0 29119000 0 0 2533000 0 0 2533000 0 3730000 0 0 0 29605000 0 0 0 2000000 0 776000 0 3730000 30381000 2000000 0 1130000 0 0 1130000 0 2000000 2000000 0 Stockholders' Equity<div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Share Repurchase Activity</span></div><div style="line-height:120%;padding-top:6px;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">On February 27, 2018, the Company's board of directors approved a stock repurchase program authorizing up to </span><span style="font-family:inherit;font-size:10pt;"><span>$50.0</span></span><span style="font-family:inherit;font-size:10pt;"> million in share repurchases. This share repurchase program commenced on March 28, 2018 with an expiration date of December 28, 2018. As of June 30, 2018, the Company completed the repurchase program and repurchased </span><span style="font-family:inherit;font-size:10pt;"><span>798,794</span></span><span style="font-family:inherit;font-size:10pt;"> shares of common stock totaling </span><span style="font-family:inherit;font-size:10pt;"><span>$50.0 million</span></span><span style="font-family:inherit;font-size:10pt;">.</span></div> 50000000.0 798794 50000000.0 Commitments and Contingencies<div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Legal Proceedings</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">From time to time and in the ordinary course of business, the Company is subject to various claims, charges and litigation. The outcome of litigation cannot be predicted with certainty and some lawsuits, claims or proceedings may be disposed of unfavorably to us, which could materially affect our financial condition or results of operations.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Outstanding Purchase Orders</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">At </span><span style="font-family:inherit;font-size:10pt;">June 29, 2019</span><span style="font-family:inherit;font-size:10pt;">, the Company had outstanding purchase orders aggregating approximately </span><span style="font-family:inherit;font-size:10pt;"><span>$213.0 million</span></span><span style="font-family:inherit;font-size:10pt;">. These purchase orders, the majority of which are with contract manufacturers for the purchase of inventory in the normal course of business, are for manufacturing and non-manufacturing related goods and services, and are generally cancelable without penalty. In circumstances where the Company determines that it has financial exposure associated with any of these commitments, the Company records a liability in the period in which that exposure is identified.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Guarantees and Indemnification Obligations</span></div><div style="line-height:120%;padding-top:6px;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company enters into standard indemnification agreements in the ordinary course of business. Pursuant to these agreements, the Company indemnifies and agrees to reimburse the indemnified party for losses incurred by the indemnified party, generally the Company’s customers, in connection with any patent, copyright, trade secret or other proprietary right infringement claim by any third party. The term of these indemnification agreements is generally perpetual any time after execution of the agreement. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited. The Company has never incurred costs to defend lawsuits or settle claims related to these indemnification agreements. As a result, the Company believes the estimated fair value of these agreements is minimal. Accordingly, the Company has no liabilities recorded for these agreements as of </span><span style="font-family:inherit;font-size:10pt;">June 29, 2019</span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;">December 29, 2018</span><span style="font-family:inherit;font-size:10pt;">, respectively.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Warranty</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company provides warranties on most products and has established a reserve for warranty obligations based on estimated warranty costs. The reserve is included as part of accrued expenses (Note 7) in the accompanying consolidated balance sheets.    </span></div><div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Activity related to the warranty accrual was as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:45%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance at beginning of period</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,628</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,833</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,964</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,264</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Provision</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,682</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,193</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,333</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,628</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Warranty usage</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(2,340</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(2,793</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(5,327</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(4,659</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance at end of period</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,233</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,233</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 213000000.0 <div style="line-height:120%;padding-top:6px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Activity related to the warranty accrual was as follows (in thousands):</span></div><div style="line-height:120%;padding-top:6px;text-align:center;padding-left:0px;text-indent:0px;font-size:10pt;"><div style="padding-left:0px;text-indent:0px;line-height:normal;padding-top:10px;"><table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;margin-left:auto;margin-right:auto;width:100%;border-collapse:collapse;text-align:left;"><tr><td colspan="16"/></tr><tr><td style="width:45%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:1%;"/><td style="width:11%;"/><td style="width:1%;"/></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Three Months Ended</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="7" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">Six Months Ended</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 29, 2019</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="3" style="vertical-align:bottom;border-bottom:1px solid #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;border-top:1px solid #000000;"><div style="text-align:center;font-size:8pt;"><span style="font-family:inherit;font-size:8pt;font-weight:bold;">June 30, 2018</span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance at beginning of period</span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,628</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,833</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,964</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,264</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Provision</span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,682</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>2,193</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>5,333</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>4,628</span></span></div></td><td style="vertical-align:bottom;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr><tr><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Warranty usage</span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(2,340</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(2,793</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(5,327</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td colspan="2" style="vertical-align:bottom;background-color:#cceeff;padding-left:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>(4,659</span></span></div></td><td style="vertical-align:bottom;background-color:#cceeff;padding-right:2px;padding-top:2px;padding-bottom:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">)</span></div></td></tr><tr><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">Balance at end of period</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,233</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,970</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td><td style="vertical-align:bottom;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;"><div style="overflow:hidden;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"> </span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-left:2px;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">$</span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;padding-top:2px;padding-bottom:2px;border-top:1px solid #000000;"><div style="text-align:right;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><span>11,233</span></span></div></td><td style="vertical-align:bottom;border-bottom:3px double #000000;border-top:1px solid #000000;"><div style="text-align:left;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;"><br/></span></div></td></tr></table></div><span style="font-family:inherit;font-size:10pt;"><br/></span></div> 11628000 11833000 11964000 11264000 2682000 2193000 5333000 4628000 2340000 2793000 5327000 4659000 11970000 11233000 11970000 11233000 Income Taxes<div style="line-height:120%;padding-bottom:12px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s effective income tax rate for the three months ended </span><span style="font-family:inherit;font-size:10pt;">June 29, 2019</span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, was </span><span style="font-family:inherit;font-size:10pt;"><span>(6.3)%</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>29.6%</span></span><span style="font-family:inherit;font-size:10pt;">, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit in the three months ended June 29, 2019. In addition, the Company recorded a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.</span></div><div style="line-height:120%;padding-bottom:12px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company's effective income tax rate of </span><span style="font-family:inherit;font-size:10pt;"><span>(6.3)%</span></span><span style="font-family:inherit;font-size:10pt;"> for the three months ended </span><span style="font-family:inherit;font-size:10pt;">June 29, 2019</span><span style="font-family:inherit;font-size:10pt;"> differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit.</span></div><div style="line-height:120%;padding-bottom:12px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company’s effective income tax rate for the six months ended June 29, 2019 and June 30, 2018, was </span><span style="font-family:inherit;font-size:10pt;"><span>2.0%</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>24.3%</span></span><span style="font-family:inherit;font-size:10pt;">, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and a decrease in foreign taxes related to a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.</span></div><div style="line-height:120%;padding-bottom:12px;text-align:left;text-indent:30px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company's effective income tax rate of </span><span style="font-family:inherit;font-size:10pt;"><span>2.0%</span></span><span style="font-family:inherit;font-size:10pt;"> for the six months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation.</span></div> -0.063 0.296 -0.063 0.020 0.243 0.020 Industry Segment, Geographic Information and Significant Customers<div style="line-height:120%;padding-top:6px;text-align:left;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">The Company operates as </span><span style="font-family:inherit;font-size:10pt;"><span>one</span></span><span style="font-family:inherit;font-size:10pt;"> operating segment. The Company's consumer robots products are offered to consumers through distributor and retail sales channels, as well as its on-line stores.</span></div><div style="line-height:120%;padding-top:6px;text-indent:18px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;font-style:italic;font-weight:bold;">Significant Customers</span></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><span style="font-family:inherit;font-size:10pt;">For the three months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company generated </span><span style="font-family:inherit;font-size:10pt;"><span>28.0%</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>23.8%</span></span><span style="font-family:inherit;font-size:10pt;"> of total revenue, respectively, from one of its retailers (Amazon). </span></div><span style="font-family:inherit;font-size:10pt;">For the six months ended June 29, 2019 and </span><span style="font-family:inherit;font-size:10pt;">June 30, 2018</span><span style="font-family:inherit;font-size:10pt;">, the Company generated </span><span style="font-family:inherit;font-size:10pt;"><span>22.3%</span></span><span style="font-family:inherit;font-size:10pt;"> and </span><span style="font-family:inherit;font-size:10pt;"><span>17.7%</span></span> of total revenue, respectively, from one of its retailers (Amazon). <span style="font-family:inherit;font-size:10pt;">The Company operates as </span><span style="font-family:inherit;font-size:10pt;"><span>one</span></span> operating segment. 1 0.280 0.238 0.223 0.177 Level 3 fair value estimates are based on inputs that are generally unobservable and typically reflect management’s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques, including option pricing and discounted cash flow models. Unobservable inputs used in the models are significant to the fair values of the assets and liabilities. Level 2 fair value estimates are based on observable inputs other than quoted prices in active markets for identical assets and liabilities, quoted prices for identical or similar assets or liabilities in inactive markets, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities. As of June 29, 2019, the Company’s investments had maturity dates ranging from August 2019 to March 2021. (1)The amount represents the change in fair value of derivative contracts due to changes in spot rates. XML 11 R1.htm IDEA: XBRL DOCUMENT v3.19.2
Document and Entity Information - shares
6 Months Ended
Jun. 29, 2019
Jul. 27, 2019
Entity Information [Line Items]    
Document Transition Report false  
Document Quarterly Report true  
Title of 12(b) Security Common Stock, $0.01 par value  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 77-0259335  
Document Type 10-Q  
Amendment Flag false  
Document Period End Date Jun. 29, 2019  
Entity File Number 001-36414  
Entity Address, Address Line One 8 Crosby Drive  
Entity Address, City or Town Bedford  
Entity Address, State or Province MA  
Entity Address, Postal Zip Code 01730  
City Area Code 781  
Local Phone Number 430-3000  
Document Fiscal Year Focus 2019  
Document Fiscal Period Focus Q2  
Trading Symbol IRBT  
Entity Registrant Name iROBOT CORPORATION  
Entity Central Index Key 0001159167  
Current Fiscal Year End Date --12-28  
Entity Shell Company false  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Common Stock, Shares Outstanding   28,123,937
Security Exchange Name NASDAQ  
XML 12 R2.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Balance Sheets (Unaudited) - USD ($)
$ in Thousands
Jun. 29, 2019
Dec. 29, 2018
Current assets:    
Cash and cash equivalents $ 132,795 $ 130,373
Short term investments 23,984 31,605
Accounts receivable, net 90,401 162,166
Inventory 192,010 164,633
Other current assets 41,960 25,660
Total current assets 481,150 514,437
Property and equipment, net 71,728 57,026
Operating lease right-of-use assets 50,002 0
Deferred tax assets 33,862 36,979
Goodwill 120,538 118,896
Intangible assets, net 18,636 24,273
Other assets 25,099 15,350
Total assets 801,015 766,961
Current liabilities:    
Accounts payable 86,848 136,742
Accrued expenses 63,629 71,259
Deferred revenue and customer advances 2,101 5,756
Total current liabilities 152,578 213,757
Operating lease liabilities 58,068 0
Deferred tax liabilities 2,110 4,005
Other long-term liabilities 8,683 13,877
Total long-term liabilities 68,861 17,882
Total liabilities 221,439 231,639
Commitments and contingencies (Note 11)
Preferred stock, 5,000 shares authorized and none outstanding 0 0
Common stock, $0.01 par value, 100,000 shares authorized; 28,123 and 27,788 shares issued and outstanding, respectively 281 278
Additional paid-in capital 184,663 172,771
Retained earnings 396,748 367,021
Accumulated other comprehensive loss (2,116) (4,748)
Total stockholders’ equity 579,576 535,322
Total liabilities and stockholders’ equity $ 801,015 $ 766,961
XML 13 R3.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Balance Sheets (Unaudited) (Parenthetical) - $ / shares
Jun. 29, 2019
Dec. 29, 2018
Preferred stock, shares authorized 5,000,000 5,000,000
Preferred stock, shares outstanding
Common stock, par value $ 0.01 $ 0.01
Common stock, shares authorized 100,000,000 100,000,000
Common stock, shares issued 28,123,000 27,788,000
Common stock, shares outstanding 28,123,000 27,788,000
XML 14 R4.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Statements of Income Statement - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Revenue $ 260,172 $ 226,317 $ 497,833 $ 443,385
Cost of product revenue 138,891 103,712 253,929 200,213
Amortization of acquired intangible assets 3,111 4,679 6,188 9,461
Total cost of revenue 142,002 108,391 260,117 209,674
Gross profit 118,170 117,926 237,716 233,711
Research and development 35,650 34,924 70,919 67,869
Selling and marketing 56,409 45,910 95,245 77,239
General and administrative 20,592 23,468 43,499 49,301
Amortization of acquired intangible assets 269 269 540 542
Total operating expenses 112,920 104,571 210,203 194,951
Operating income 5,250 13,355 27,513 38,760
Other income, net 1,533 1,507 2,813 2,026
Income before income taxes 6,783 14,862 30,326 40,786
Income tax (benefit) expense (424) 4,391 599 9,914
Net income $ 7,207 $ 10,471 $ 29,727 $ 30,872
Basic $ 0.26 $ 0.38 $ 1.06 $ 1.11
Diluted $ 0.25 $ 0.37 $ 1.03 $ 1.08
Basic 28,079 27,615 27,970 27,802
Diluted 28,763 28,337 28,779 28,658
XML 15 R5.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Statements of Comprehensive Income (Unaudited) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Net income $ 7,207 $ 10,471 $ 29,727 $ 30,872
Other comprehensive income (loss):        
Net foreign currency translation adjustments 1,794 (11,123) (676) (5,785)
Net unrealized gains (losses) on cash flow hedges, net of tax (1,540) 1,619 3,261 (232)
Net (gains) losses on cash flow hedge reclassified into earnings, net of tax (267) (169) (161) 421
Net unrealized gains (losses) on marketable securities, net of tax 95 87 208 (85)
Total comprehensive income $ 7,289 $ 885 $ 32,359 $ 25,191
XML 16 R6.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Statement of Shareholders' Equity Statement - USD ($)
$ in Thousands
Total
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
AOCI Attributable to Parent [Member]
Beginning Balance, Shares   27,945,000      
Beginning balance $ 470,327 $ 279 $ 190,067 $ 277,989 $ 1,992
Issuance of common stock under employee stock plans (in shares)   67,000      
Stock Issued During Period, Value, Stock Options Exercised 2,605 $ 1 2,604    
Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares)   240,000      
Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures 0 $ 2 (2)    
Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition 12,377   12,377    
Shares Paid for Tax Withholding for Share Based Compensation (in shares)   (51,000)      
Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount (3,532) $ 0 (3,532)    
Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent (5,682)       (5,682)
Adjustments to Additional Paid in Capital Directors Deferred Compensation 34   34    
Net income $ 30,872     30,872  
Stock Repurchased and Retired During Period, Shares (799,000)        
Stock Repurchased and Retired During Period, Value $ (50,000) $ (8) (49,992)    
Stock Repurchased and Retired During Period, Shares (798,794)        
Stock Repurchased and Retired During Period, Value $ (50,000)        
Beginning Balance, Shares   28,073,000      
Beginning balance 496,628 $ 280 191,021 299,430 5,897
Issuance of common stock under employee stock plans (in shares)   56,000      
Stock Issued During Period, Value, Stock Options Exercised 2,206 $ 1 2,205    
Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares)   43,000      
Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures 0 $ 1 (1)    
Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition 6,431   6,431    
Shares Paid for Tax Withholding for Share Based Compensation (in shares)   (1,000)      
Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount (54) $ 0 (54)    
Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent (9,587)       (9,587)
Adjustments to Additional Paid in Capital Directors Deferred Compensation 16   16    
Net income $ 10,471     10,471  
Stock Repurchased and Retired During Period, Shares (769,000)        
Stock Repurchased and Retired During Period, Value $ (48,070) $ (8) (48,062)    
Beginning Balance, Shares   27,402,000      
Beginning balance 458,041 $ 274 151,556 309,901 (3,690)
Cumulative Effect of New Accounting Principle in Period of Adoption $ 1,040     1,040  
Beginning Balance, Shares 27,788,000 27,788,000      
Beginning balance $ 535,322 $ 278 172,771 367,021 (4,748)
Issuance of common stock under employee stock plans (in shares)   116,000      
Stock Issued During Period, Value, Stock Options Exercised 4,680 $ 1 4,679    
Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares)   278,000      
Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures 0 $ 3 (3)    
Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition 14,458   14,458    
Shares Paid for Tax Withholding for Share Based Compensation (in shares)   (59,000)      
Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount (7,277) $ (1) (7,276)    
Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent 2,632       2,632
Adjustments to Additional Paid in Capital Directors Deferred Compensation 34   34    
Net income 29,727     29,727  
Beginning Balance, Shares   28,038,000      
Beginning balance 562,623 $ 280 175,000 389,541 (2,198)
Issuance of common stock under employee stock plans (in shares)   39,000      
Stock Issued During Period, Value, Stock Options Exercised 2,117 $ 0 2,117    
Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares)   47,000      
Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures 0 $ 1 (1)    
Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition 7,594   7,594    
Shares Paid for Tax Withholding for Share Based Compensation (in shares)   (1,000)      
Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount (65) $ 0 (65)    
Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent 82       82
Adjustments to Additional Paid in Capital Directors Deferred Compensation 18   18    
Net income $ 7,207     7,207  
Beginning Balance, Shares 28,123,000 28,123,000      
Beginning balance $ 579,576 $ 281 $ 184,663 $ 396,748 $ (2,116)
XML 17 R7.htm IDEA: XBRL DOCUMENT v3.19.2
Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Cash flows from operating activities:    
Net income $ 29,727 $ 30,872
Adjustments to reconcile net income to net cash provided by operating activities, net of the effects of acquisition:    
Depreciation and amortization 17,905 17,606
Stock-based compensation 14,458 12,377
Deferred income taxes, net 535 (4,208)
Other 3,106 384
Changes in operating assets and liabilities — (use) source    
Accounts receivable 67,808 66,085
Inventory (27,112) (10,303)
Other current assets (14,246) (12,764)
Accounts payable (52,835) (46,519)
Accrued expenses and other liabilities (18,043) (27,211)
Net cash provided by operating activities 21,303 26,319
Cash flows from investing activities:    
Additions of property and equipment (14,705) (14,284)
Change in other assets (4,541) (1,837)
Proceeds from sale of equity investment 0 629
Cash paid for business acquisition, net of cash acquired 2,817 0
Purchases of investments 0 (6,438)
Sales and maturities of investments 5,880 7,000
Net cash used in investing activities (16,183) (14,930)
Cash flows from financing activities:    
Proceeds from employee stock plans 4,680 2,605
Income tax withholding payment associated with restricted stock vesting (7,277) (3,532)
Stock repurchases 0 50,000
Net cash used in financing activities (2,597) (50,927)
Effect of exchange rate changes on cash and cash equivalents (101) (314)
Net increase (decrease) in cash and cash equivalents 2,422 (39,852)
Cash and cash equivalents, at beginning of period 130,373 128,635
Cash and cash equivalents, at end of period 132,795 88,783
Supplemental disclosure of cash flow information:    
Additions of property and equipment included in accounts payable $ 4,746 $ 1,537
XML 18 R8.htm IDEA: XBRL DOCUMENT v3.19.2
Description of Business
6 Months Ended
Jun. 29, 2019
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Description of Business Description of Business
iRobot Corporation ("iRobot" or the "Company") designs and builds robots that empower people to do more. The Company develops robotic technology and applies it to produce and market consumer robots. The Company’s revenue is primarily generated from product sales through distributor and retail sales channels, as well as its on-line stores.
XML 19 R9.htm IDEA: XBRL DOCUMENT v3.19.2
Summary of Significant Accounting Policies
6 Months Ended
Jun. 29, 2019
Accounting Policies [Abstract]  
Summary of Significant Accounting Policies Summary of Significant Accounting Policies
Basis of Presentation
The accompanying consolidated financial statements include those of iRobot and its subsidiaries, after elimination of all intercompany balances and transactions. iRobot has prepared the accompanying unaudited consolidated financial statements in conformity with accounting principles generally accepted in the United States of America ("GAAP"). In addition, certain prior year amounts have been reclassified to conform to the current year presentation.
In the opinion of management, all adjustments necessary to the unaudited interim consolidated financial statements have been made to state fairly the Company's financial position. Interim results are not necessarily indicative of results for the full fiscal year or any future periods. The information included in this Form 10-Q should be read in conjunction with the Company's audited consolidated financial statements and notes thereto included in its Annual Report on Form 10-K for the fiscal year ended December 29, 2018, filed with the Securities and Exchange Commission on February 14, 2019.
The Company operates and reports using a 52-53 week fiscal year ending on the Saturday closest to December 31. Accordingly, the Company’s fiscal quarters end on the Saturday that falls closest to the last day of the third month of each quarter.
Use of Estimates
The preparation of these financial statements in conformity with GAAP requires the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition, including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs; valuation of goodwill and acquired intangible assets; valuation of financial instruments; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. The Company bases these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that the Company believes are reasonable under the circumstances. Actual results may differ from the Company’s estimates.
Other Assets
The Company holds non-marketable equity securities as part of its strategic investments portfolio. The Company classifies its cost method investments as equity securities without readily determinable fair values and measures these investments at cost, less any impairment, adjusted for observable price changes. At June 29, 2019 and December 29, 2018, other assets consisted primarily of equity securities without readily determinable fair values and an equity method investment totaling $21.6 million and $15.1 million, respectively.
Net Income Per Share
Basic income per share is calculated using the Company's weighted-average outstanding common shares. Diluted income
per share is calculated using the Company's weighted-average outstanding common shares including the dilutive effect of stock
awards as determined under the treasury stock method.

The following table presents the calculation of both basic and diluted net income per share (in thousands, except per share amounts): 
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Net income
$
7,207

 
$
10,471

 
$
29,727

 
$
30,872

Weighted-average common shares outstanding
28,079

 
27,615

 
27,970

 
27,802

Dilutive effect of employee stock awards
684

 
722

 
809

 
856

Diluted weighted-average common shares outstanding
28,763

 
28,337

 
28,779

 
28,658

Basic income per share
$
0.26

 
$
0.38

 
$
1.06

 
$
1.11

Diluted income per share
$
0.25

 
$
0.37

 
$
1.03

 
$
1.08

Employee stock awards representing approximately 0.2 million shares of common stock for the three months ended June 29, 2019 and June 30, 2018, and approximately 0.1 million shares of common stock for the six months ended June 29, 2019 and June 30, 2018, were excluded from the computation of diluted earnings per share as their effect would have been antidilutive.
Recently Adopted Accounting Standards
In June 2018, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2018-07, "Compensation - Stock Compensation: Improvements to Nonemployee Share-Based Payment Accounting (Topic 718)." The amendments in ASU No. 2018-07 expand the scope of Topic 718 to include share-based payments issued to nonemployees for goods or services. The amendments in this ASU are effective for annual periods beginning after December 15, 2018 and interim periods within those annual periods, with early adoption permitted. The Company adopted this standard effective December 30, 2018 which did not have a material impact on the Company's consolidated financial statements and related disclosures.
In February 2016, the FASB issued ASU No. 2016-02 "Leases." This ASU and subsequently issued amendments require lessees to recognize the assets and liabilities on their balance sheet for the rights and obligations created by most leases and continue to recognize expenses on their income statements over the lease term. The standard also requires disclosures designed to give financial statement users information on the amount, timing and uncertainty of cash flows arising from leases. In July 2018, the FASB issued ASU No. 2018-11, "Leases (Topic 842): Targeted Improvements," which provides an alternative transition method that entities can elect when adopting the new standard. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company adopted the standard effective December 30, 2018 using the alternative transition method which resulted in the recognition of operating lease right-of-use assets and operating lease liabilities of approximately $52.8 million and $67.3 million, respectively. The Company's consolidated financial statements as of and for the three and six months ended June 29, 2019 are presented under the new standard, while the comparative quarter presented is not adjusted and continues to be reported in accordance with the historical accounting policy. See Note 4, "Leases," for the required disclosures related to the impact of adopting this standard and a discussion of the Company's updated policies related to lease accounting.
Recently Issued Accounting Standards
In August 2018, the FASB issued ASU No. 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software." The new standard aligns 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 (and hosting arrangements that include an internal use software license). The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019, with early adoption permitted. Implementation should be applied either retrospectively or prospectively to all implementation costs incurred after the date of adoption. The Company is currently evaluating the impact of the standard on its consolidated financial statements.
In August 2018, the FASB issued ASU No. 2018-13, "Fair Value Measurement: Disclosure Framework—Changes to the Disclosure Requirements for Fair Value Measurement." The amendment modifies disclosure requirements related to fair value measurement. The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019. Implementation on a prospective or retrospective basis varies by specific disclosure requirement. Early adoption is permitted. The standard also allows for early adoption of any removed or modified disclosures upon issuance of this ASU while delaying adoption of the additional disclosures until their effective date. The Company does not believe this amendment will have a material impact on its consolidated financial statements.
In June 2016, the FASB issued ASU No. 2016-13, "Measurement of Credit Losses on Financial Instruments," as clarified in ASU No. 2019-04 and ASU No. 2019-05. The guidance amends the impairment model by requiring entities to use a forward-
looking approach based on expected losses rather than incurred losses to estimate credit losses on certain types of financial instruments. This may result in the earlier recognition of allowances for losses. The guidance is effective for fiscal years beginning after December 15, 2019, including interim periods within those fiscal years, with early adoption permitted. The Company is currently evaluating the impact of the standards on its consolidated financial statements. 
From time to time, new accounting pronouncements are issued by FASB that are adopted by the Company as of the specified effective date. Unless otherwise discussed, the Company believes that recently issued standards, which are not yet effective, will not have a material impact on the Company’s consolidated financial statements upon adoption.
XML 20 R10.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition (Notes)
6 Months Ended
Jun. 29, 2019
Revenue Recognition and Deferred Revenue [Abstract]  
Revenue from Contract with Customer [Text Block] Revenue Recognition
The Company primarily derives its revenue from product sales. The Company sells products directly to consumers through on-line stores and indirectly through resellers and distributors. Revenue is recognized upon transfer of control of promised products or services to customers, generally as title and risk of loss passes, in an amount that reflects the consideration the Company expects to receive in exchange for those products or services. Taxes collected from customers, which are subsequently remitted to governmental authorities, are excluded from revenue. Shipping and handling expenses are considered fulfillment activities and are expensed as incurred.
The Company’s product portfolio includes various consumer robots, many of which are Wi-Fi connected. The consumer robots are generally highly dependent on, and interrelated with, the embedded software and cannot function without the software. As such, the consumer robots are accounted for as a single performance obligation, and the revenue is recognized at a point in time when the control is transferred to distributors, resellers or directly to end customers through on-line stores. For consumer robots with Wi-Fi capability ("connected robots"), each sale represents an arrangement with multiple promises consisting of the robot, an app, cloud services and potential future unspecified software upgrades. The Company has determined that the app, cloud services and potential future unspecified software upgrades represent one promised service to the customer to enhance the functionality and interaction with the robot (referred to collectively as "Cloud Services"). For certain connected robots, the Company has concluded that, on a quantitative and qualitative basis, the Cloud Services do not constitute a material performance obligation and, as such, these services are not considered a separate performance obligation that requires allocation of transaction price.
During the third quarter of 2018, the Company launched Roomba i7 and i7+ which brought a new level of intelligence and automation to robotic vacuum cleaners with the ability to learn, map and adapt to a home's floor plan. The Company has concluded that beginning with this launch, the Cloud Services related to these new products are a material performance obligation. For contracts that contain multiple performance obligations, the transaction price is allocated to each performance obligation based on a relative standalone selling price ("SSP"). The SSP reflects the Company's best estimate of what the selling prices of performance obligations would be if they were sold regularly on a standalone basis. Revenue allocated to the robots is recognized at a point in time when control is transferred. Revenue allocated to the Cloud Services is deferred and recognized on a straight-line basis over the estimated period the software upgrades and services are expected to be provided. For contracts with a duration of greater than one year, the transaction price allocated to performance obligations that are unsatisfied as of June 29, 2019 is not material. The Company does not disclose the value of unsatisfied performance obligations for contracts with an original expected duration of one year or less.
The Company’s products generally carry a one-year limited warranty that promises customers that delivered products are as specified. The Company does not consider these assurance-type warranties as a separate performance obligation and therefore, the Company accounts for such warranties under ASC 460, "Guarantees."
Significant Judgments
The Company provides limited rights of returns for direct-to-consumer sales generated through its on-line stores and certain resellers and distributors. In addition, the Company may provide other credits or incentives, including price protection, which are accounted for as variable consideration when estimating the amount of revenue to recognize. Where appropriate, these estimates take into consideration relevant factors such as the Company’s historical experience, current contractual requirements, specific known market events and trends and forecasted customer buying and payment patterns. Overall, these reserves reflect the Company’s best estimates, and the actual amounts of consideration ultimately received may differ from the Company’s estimates. Returns and credits are estimated at contract inception and updated at the end of each reporting period as additional information becomes available and only to the extent that it is probable that a significant reversal of any incremental revenue will not occur. As of June 29, 2019, the Company has reserves for product returns of $44.5 million and other credits and incentives of $69.7 million. As of December 29, 2018, the Company had reserves for product returns of $53.9 million and other credits and incentives of $97.7 million. Revenue recognized during the three months ended June 29, 2019 and June 30, 2018 related to performance obligations satisfied in a prior period was not material.
Disaggregation of Revenue
The following table provides information about disaggregated revenue by geographical region (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
United States
$
124,472

 
$
111,526

 
$
238,537

 
$
218,388

EMEA
82,893

 
70,123

 
157,462

 
139,710

Other
52,807

 
44,668

 
101,834

 
85,287

Total revenue
$
260,172

 
$
226,317

 
$
497,833

 
$
443,385


Contract Balances
The following table provides information about receivables and contract liabilities from contracts with customers (in thousands):
 
June 29, 2019
 
December 29, 2018
Accounts receivable, net
$
90,401

 
$
162,166

Contract liabilities
3,075

 
5,756

The Company invoices customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract liabilities primarily relate to prepayments received from customers in advance of product shipments. The change in the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and the customer’s payment. During the three months ended June 29, 2019 and June 30, 2018, the Company recognized $5.3 million and $6.3 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. During the six months ended June 29, 2019 and June 30, 2018, the Company recognized $5.8 million and $6.7 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. The Company does not assess whether a prepayment received represents a significant financing component as the period between when the payment is received and the transfer of the products to the customer is generally one year or less.
XML 21 R11.htm IDEA: XBRL DOCUMENT v3.19.2
Leases (Notes)
6 Months Ended
Jun. 29, 2019
Leases [Abstract]  
Lessee, Operating Leases [Text Block] Leases
The Company's leasing arrangements primarily consist of operating leases for its facilities which include corporate, sales and research and development offices. For leases with terms greater than 12 months, the Company records the related right-of-use asset and lease obligation at the present value of lease payments over the term. The Company's leases typically include rental escalation clauses, renewal options and/or termination options that are factored into the determination of lease payments when appropriate. The Company does not separate lease and nonlease components of contracts and excludes all variable lease payments from the measurement of right-of-use assets and lease liabilities. The Company's variable lease payments generally include usage based nonlease components. The Company's lease agreements do not contain any residual value guarantees or restrictive covenants. Leases with an initial term of 12 months or less are not recorded on the balance sheet; lease expense is recognized on a straight-line basis over the lease term.
The Company's existing leases do not provide a readily determinable implicit rate. Therefore, the Company estimates its incremental borrowing rate to discount the lease payments based on information available at December 30, 2018 (date of initial application) or the lease commencement date for existing leases upon adoption or new leases post adoption, respectively. At June 29, 2019, the Company's weighted average discount rate was 3.61%, while the weighted average remaining lease term was 9.58 years.
The components of lease expense were as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Operating lease cost
$
1,969

 
$
3,939

Variable lease cost
1,316

 
2,136

Total lease cost
$
3,285

 
$
6,075


Supplemental cash flow information related to leases was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Cash paid for amounts included in the measurement of lease liabilities:
 
 
 
Operating cash flows from operating leases
$
2,865

 
$
4,881

Right-of-use assets obtained in exchange for lease obligations:
 
 
 
Operating leases
$

 
$
52,767


Maturities of operating lease liabilities were as follows as of June 29, 2019 (in thousands):
 
Operating leases
Remainder of 2019
$
3,435

2020
8,543

2021
8,255

2022
7,580

2023
7,127

Thereafter
41,198

Total minimum lease payments
$
76,138

Less: imputed interest
12,548

Present value of future minimum lease payments
$
63,590

Less: current portion of operating lease liabilities (Note 7)
5,522

Long-term lease liabilities
$
58,068



Financial Statement Impact of Adopting ASC 842
The Company adopted ASC 842 effective December 30, 2018 using the alternative transition method. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company elected the package of practical expedients permitted under the transition guidance, which allowed the Company to carryforward its historical assessments of (1) whether contracts are or contain leases, (2) lease classification and (3) initial direct costs. In addition, the Company elected the practical expedient to use hindsight in determining lease term. The adoption of the new standard resulted in the recognition of right-of-use assets and lease liabilities of approximately $52.8 million and $67.3 million, respectively. The standard did not materially impact the Company's consolidated income or cash flows.
XML 22 R12.htm IDEA: XBRL DOCUMENT v3.19.2
Inventory
6 Months Ended
Jun. 29, 2019
Inventory Disclosure [Abstract]  
Inventory Inventory
Inventory consists of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
Raw materials
$
2,922

 
$
2,992

Finished goods
189,088

 
161,641

 
$
192,010

 
$
164,633


XML 23 R13.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets
6 Months Ended
Jun. 29, 2019
Goodwill and Intangible Assets Disclosure [Abstract]  
Goodwill, Other Intangible Assets and Other Assets Goodwill and Other Intangible Assets
The following table summarizes the activity in the carrying amount of goodwill for the six months ended June 29, 2019 (in thousands):
Balance as of December 29, 2018
$
118,896

Acquisition
2,050

Effect of foreign currency translation
(408
)
Balance as of June 29, 2019
$
120,538



Intangible assets at June 29, 2019 and December 29, 2018 consisted of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
 
Cost
 
Accumulated
Amortization
 
Net
 
Cost
 
Accumulated
Amortization
 
Net
Completed technology
$
28,100

 
$
23,396

 
$
4,704

 
$
26,900

 
$
21,607

 
$
5,293

Tradename
100

 
100

 

 
100

 
100

 

Customer relationships
11,255

 
1,859

 
9,396

 
11,291

 
1,365

 
9,926

Reacquired distribution rights
32,347

 
27,921

 
4,426

 
32,499

 
23,598

 
8,901

Non-competition agreements
262

 
152


110

 
263

 
110

 
153

Total
$
72,064

 
$
53,428

 
$
18,636

 
$
71,053

 
$
46,780

 
$
24,273


Amortization expense related to acquired intangible assets was $3.4 million and $4.9 million for the three months ended June 29, 2019 and June 30, 2018, respectively. Amortization expense related to acquired intangible assets was $6.7 million and $10.0 million for the six months ended June 29, 2019 and June 30, 2018, respectively.
The estimated future amortization expense related to current intangible assets in each of the five succeeding fiscal years is expected to be as follows (in thousands):
 
Cost of Revenue
 
Operating Expenses
 
Total
Remainder of 2019
$
5,635

 
$
497

 
$
6,132

2020
1,140

 
1,016

 
2,156

2021
1,140

 
792

 
1,932

2022
915

 
792

 
1,707

2023
240

 
792

 
1,032

Thereafter
60

 
5,617

 
5,677

Total
$
9,130

 
$
9,506

 
$
18,636


XML 24 R14.htm IDEA: XBRL DOCUMENT v3.19.2
Accrued Expenses
6 Months Ended
Jun. 29, 2019
Accrued Liabilities, Current [Abstract]  
Accrued Expenses Accrued Expenses
Accrued expenses consisted of the following at (in thousands):
 
June 29, 2019
 
December 29, 2018
Accrued other compensation
$
12,241

 
$
10,518

Accrued warranty
11,970

 
11,964

Accrued direct fulfillment costs
9,543

 
5,372

Accrued bonus
6,914

 
21,226

Current portion of operating lease liabilities
5,522

 

Accrued sales and other indirect taxes payable
4,931

 
11,397

Accrued income taxes
2,547

 
1,936

Accrued accounting fees
2,020

 
2,052

Accrued other
7,941

 
6,794

 
$
63,629

 
$
71,259


XML 25 R15.htm IDEA: XBRL DOCUMENT v3.19.2
Derivative Instruments (Notes)
6 Months Ended
Jun. 29, 2019
Derivative Instruments and Hedging Activities Disclosure [Abstract]  
Derivative Instruments and Hedging Activities Disclosure [Text Block] Derivative Instruments
The Company operates internationally and, in the normal course of business, is exposed to fluctuations in foreign currency exchange rates. The foreign currency exposures typically arise from transactions denominated in currencies other than the functional currency of the Company's operations, primarily the Japanese Yen, Canadian Dollar, British Pound and the Euro. The Company uses derivative instruments that are designated in cash flow hedge relationships to reduce or eliminate the effects of foreign exchange rate changes on sales and purchases. These contracts typically have maturities of thirty-seven months or less. At June 29, 2019 and December 29, 2018, the Company had outstanding cash flow hedges with a total notional value of $389.9 million and $366.7 million, respectively.
The Company also enters into economic hedges that are not designated as hedges from an accounting standpoint to reduce or eliminate the effects of foreign exchange rate changes typically related to short term trade receivables and payables. These contracts typically have maturities of ten months or less. At June 29, 2019 and December 29, 2018, the Company had outstanding economic hedges with a total notional value of $48.0 million and $56.0 million, respectively.
The fair values of derivative instruments are as follows (in thousands):
 
 
 
Fair Value
 
Classification
 
June 29, 2019
 
December 29, 2018
Derivatives not designated as hedging instruments:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
480

 
$
551

Foreign currency forward contracts
Accrued expenses
 
598

 

Derivatives designated as cash flow hedges:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
1,201

 
$
53

Foreign currency forward contracts
Other assets
 
3,454

 
172

Foreign currency forward contracts
Accrued expenses
 
1,102

 
335

Foreign currency forward contracts
Long-term liabilities
 
833

 
795


Gains (losses) associated with derivative instruments not designated as hedging instruments are as follows (in thousands):
 
 
 
Three Months Ended
 
Six Months Ended
 
Classification
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Gain (loss) recognized in income
Other income, net
 
$
(1,085
)
 
$
1,707

 
$
(652
)
 
$
538


The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): 
 
 
Gain (loss) recognized in OCI on Derivative (1)
 
 
Three Months Ended
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Foreign currency forward contracts
 
$
(2,054
)
 
$
2,154

 
$
4,350

 
$
(560
)

(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Three Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
260,172

 
$
142,002

 
$
226,317

 
$
108,391

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
359

 
$

 
$
(113
)
 
$
370


 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
497,833

 
$
260,117

 
$
443,385

 
$
209,674

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
214

 
$

 
$
(279
)
 
$
(386
)

XML 26 R16.htm IDEA: XBRL DOCUMENT v3.19.2
Fair Value Measurements (Notes)
6 Months Ended
Jun. 29, 2019
Fair Value Footnote [Abstract]  
Fair Value Disclosures [Text Block] Fair Value Measurements
The Company’s financial assets and liabilities measured at fair value on a recurring basis at June 29, 2019, were as follows (in thousands):
 
Fair Value Measurements as of
June 29, 2019

Level 1
 
Level 2 (1)
 
Level 3 (2)
Assets:
 
 
 
 
 
Corporate and government bonds, $24,018 at cost (3)
$

 
$
23,984

 
$

Derivative instruments (Note 8)

 
5,135

 

Total assets measured at fair value
$

 
$
29,119

 
$

 
 
 
 
 
 
Liabilities:
 
 
 
 
 
Derivative instruments (Note 8)
$

 
$
2,533

 
$

Total liabilities measured at fair value
$

 
$
2,533

 
$


The Company’s financial assets and liabilities measured at fair value on a recurring basis at December 29, 2018, were as follows (in thousands):
 
Fair Value Measurements as of
December 29, 2018
 
Level 1
 
Level 2 (1)
 
Level 3 (2)
Assets:
 
 
 
 
 
Money market funds
$
3,730

 
$

 
$

Corporate and government bonds, $30,035 at cost

 
29,605

 

Convertible note

 

 
2,000

Derivative instruments (Note 8)

 
776

 

Total assets measured at fair value
$
3,730

 
$
30,381

 
$
2,000

 
 
 
 
 
 
Liabilities:
 
 
 
 
 
Derivative instruments (Note 8)
$

 
$
1,130

 
$

Total liabilities measured at fair value
$

 
$
1,130

 
$

(1)
Level 2 fair value estimates are based on observable inputs other than quoted prices in active markets for identical assets and liabilities, quoted prices for identical or similar assets or liabilities in inactive markets, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
(2)
Level 3 fair value estimates are based on inputs that are generally unobservable and typically reflect management’s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques, including option pricing and discounted cash flow models. Unobservable inputs used in the models are significant to the fair values of the assets and liabilities.
(3)
As of June 29, 2019, the Company’s investments had maturity dates ranging from August 2019 to March 2021.
    
The following table provides a summary of changes in fair value of our Level 3 investment for the six months ended June 29, 2019 (in thousands):
Balance as of December 29, 2018
$
2,000

Conversion of convertible note
(2,000
)
Balance as of June 29, 2019
$


XML 27 R17.htm IDEA: XBRL DOCUMENT v3.19.2
Stockholders Equity (Notes)
6 Months Ended
Jun. 29, 2019
Equity [Abstract]  
Stockholders' Equity Note Disclosure [Text Block] Stockholders' Equity
Share Repurchase Activity
On February 27, 2018, the Company's board of directors approved a stock repurchase program authorizing up to $50.0 million in share repurchases. This share repurchase program commenced on March 28, 2018 with an expiration date of December 28, 2018. As of June 30, 2018, the Company completed the repurchase program and repurchased 798,794 shares of common stock totaling $50.0 million.
XML 28 R18.htm IDEA: XBRL DOCUMENT v3.19.2
Commitments and Contingencies
6 Months Ended
Jun. 29, 2019
Commitments and Contingencies Disclosure [Abstract]  
Commitments and Contingencies Commitments and Contingencies
Legal Proceedings
From time to time and in the ordinary course of business, the Company is subject to various claims, charges and litigation. The outcome of litigation cannot be predicted with certainty and some lawsuits, claims or proceedings may be disposed of unfavorably to us, which could materially affect our financial condition or results of operations.
Outstanding Purchase Orders
At June 29, 2019, the Company had outstanding purchase orders aggregating approximately $213.0 million. These purchase orders, the majority of which are with contract manufacturers for the purchase of inventory in the normal course of business, are for manufacturing and non-manufacturing related goods and services, and are generally cancelable without penalty. In circumstances where the Company determines that it has financial exposure associated with any of these commitments, the Company records a liability in the period in which that exposure is identified.
Guarantees and Indemnification Obligations
The Company enters into standard indemnification agreements in the ordinary course of business. Pursuant to these agreements, the Company indemnifies and agrees to reimburse the indemnified party for losses incurred by the indemnified party, generally the Company’s customers, in connection with any patent, copyright, trade secret or other proprietary right infringement claim by any third party. The term of these indemnification agreements is generally perpetual any time after execution of the agreement. The maximum potential amount of future payments the Company could be required to make under these indemnification agreements is unlimited. The Company has never incurred costs to defend lawsuits or settle claims related to these indemnification agreements. As a result, the Company believes the estimated fair value of these agreements is minimal. Accordingly, the Company has no liabilities recorded for these agreements as of June 29, 2019 and December 29, 2018, respectively.
Warranty
The Company provides warranties on most products and has established a reserve for warranty obligations based on estimated warranty costs. The reserve is included as part of accrued expenses (Note 7) in the accompanying consolidated balance sheets.    
Activity related to the warranty accrual was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Balance at beginning of period
$
11,628

 
$
11,833

 
$
11,964

 
$
11,264

Provision
2,682

 
2,193

 
5,333

 
4,628

Warranty usage
(2,340
)
 
(2,793
)
 
(5,327
)
 
(4,659
)
Balance at end of period
$
11,970

 
$
11,233

 
$
11,970

 
$
11,233


XML 29 R19.htm IDEA: XBRL DOCUMENT v3.19.2
Income Taxes (Notes)
6 Months Ended
Jun. 29, 2019
Income Tax Disclosure [Abstract]  
Income Tax Disclosure [Text Block] Income Taxes
The Company’s effective income tax rate for the three months ended June 29, 2019 and June 30, 2018, was (6.3)% and 29.6%, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit in the three months ended June 29, 2019. In addition, the Company recorded a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.
The Company's effective income tax rate of (6.3)% for the three months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation and the recognition of a discrete tax benefit upon the effective settlement of a foreign tax audit.
The Company’s effective income tax rate for the six months ended June 29, 2019 and June 30, 2018, was 2.0% and 24.3%, respectively. The decrease in the effective income tax rate was primarily due to increased tax benefits related to excess stock-based compensation and a decrease in foreign taxes related to a discrete charge for estimated taxes associated with a restructuring of the EMEA business in the three months ended June 30, 2018.
The Company's effective income tax rate of 2.0% for the six months ended June 29, 2019 differed from the federal statutory tax rate of 21% primarily due to the recognition of tax benefits related to excess stock-based compensation.
XML 30 R20.htm IDEA: XBRL DOCUMENT v3.19.2
Industry Segment, Geographic Information and Significant Customers
6 Months Ended
Jun. 29, 2019
Segment Reporting [Abstract]  
Industry Segment, Geographic Information and Significant Customers Industry Segment, Geographic Information and Significant Customers
The Company operates as one operating segment. The Company's consumer robots products are offered to consumers through distributor and retail sales channels, as well as its on-line stores.
Significant Customers
For the three months ended June 29, 2019 and June 30, 2018, the Company generated 28.0% and 23.8% of total revenue, respectively, from one of its retailers (Amazon).
For the six months ended June 29, 2019 and June 30, 2018, the Company generated 22.3% and 17.7% of total revenue, respectively, from one of its retailers (Amazon).
XML 31 R21.htm IDEA: XBRL DOCUMENT v3.19.2
Summary of Significant Accounting Policies (Policies)
6 Months Ended
Jun. 29, 2019
Accounting Policies [Abstract]  
Basis of Presentation
Basis of Presentation
The accompanying consolidated financial statements include those of iRobot and its subsidiaries, after elimination of all intercompany balances and transactions. iRobot has prepared the accompanying unaudited consolidated financial statements in conformity with accounting principles generally accepted in the United States of America ("GAAP"). In addition, certain prior year amounts have been reclassified to conform to the current year presentation.
In the opinion of management, all adjustments necessary to the unaudited interim consolidated financial statements have been made to state fairly the Company's financial position. Interim results are not necessarily indicative of results for the full fiscal year or any future periods. The information included in this Form 10-Q should be read in conjunction with the Company's audited consolidated financial statements and notes thereto included in its Annual Report on Form 10-K for the fiscal year ended December 29, 2018, filed with the Securities and Exchange Commission on February 14, 2019.
The Company operates and reports using a 52-53 week fiscal year ending on the Saturday closest to December 31. Accordingly, the Company’s fiscal quarters end on the Saturday that falls closest to the last day of the third month of each quarter.
Use of Estimates
Use of Estimates
The preparation of these financial statements in conformity with GAAP requires the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and revenues and expenses. These estimates and judgments, include but are not limited to, revenue recognition, including performance obligations, variable consideration and other obligations such as product returns and incentives; warranty costs; valuation of goodwill and acquired intangible assets; valuation of financial instruments; evaluating loss contingencies; accounting for stock-based compensation including performance-based assessments; and accounting for income taxes and related valuation allowances. The Company bases these estimates and judgments on historical experience, market participant fair value considerations, projected future cash flows and various other factors that the Company believes are reasonable under the circumstances. Actual results may differ from the Company’s estimates.
Investment, Policy [Policy Text Block]
Other Assets
The Company holds non-marketable equity securities as part of its strategic investments portfolio. The Company classifies its cost method investments as equity securities without readily determinable fair values and measures these investments at cost, less any impairment, adjusted for observable price changes. At June 29, 2019 and December 29, 2018, other assets consisted primarily of equity securities without readily determinable fair values and an equity method investment totaling $21.6 million and $15.1 million, respectively.
Net Income Per Share
Net Income Per Share
Basic income per share is calculated using the Company's weighted-average outstanding common shares. Diluted income
per share is calculated using the Company's weighted-average outstanding common shares including the dilutive effect of stock
awards as determined under the treasury stock method.

The following table presents the calculation of both basic and diluted net income per share (in thousands, except per share amounts): 
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Net income
$
7,207

 
$
10,471

 
$
29,727

 
$
30,872

Weighted-average common shares outstanding
28,079

 
27,615

 
27,970

 
27,802

Dilutive effect of employee stock awards
684

 
722

 
809

 
856

Diluted weighted-average common shares outstanding
28,763

 
28,337

 
28,779

 
28,658

Basic income per share
$
0.26

 
$
0.38

 
$
1.06

 
$
1.11

Diluted income per share
$
0.25

 
$
0.37

 
$
1.03

 
$
1.08

Employee stock awards representing approximately 0.2 million shares of common stock for the three months ended June 29, 2019 and June 30, 2018, and approximately 0.1 million shares of common stock for the six months ended June 29, 2019 and June 30, 2018, were excluded from the computation of diluted earnings per share as their effect would have been antidilutive.
Recent Accounting Pronouncements
Recently Adopted Accounting Standards
In June 2018, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2018-07, "Compensation - Stock Compensation: Improvements to Nonemployee Share-Based Payment Accounting (Topic 718)." The amendments in ASU No. 2018-07 expand the scope of Topic 718 to include share-based payments issued to nonemployees for goods or services. The amendments in this ASU are effective for annual periods beginning after December 15, 2018 and interim periods within those annual periods, with early adoption permitted. The Company adopted this standard effective December 30, 2018 which did not have a material impact on the Company's consolidated financial statements and related disclosures.
In February 2016, the FASB issued ASU No. 2016-02 "Leases." This ASU and subsequently issued amendments require lessees to recognize the assets and liabilities on their balance sheet for the rights and obligations created by most leases and continue to recognize expenses on their income statements over the lease term. The standard also requires disclosures designed to give financial statement users information on the amount, timing and uncertainty of cash flows arising from leases. In July 2018, the FASB issued ASU No. 2018-11, "Leases (Topic 842): Targeted Improvements," which provides an alternative transition method that entities can elect when adopting the new standard. Under this alternative transition method, a company is permitted to use its effective date as the date of initial application without restating comparative period financial statements. The Company adopted the standard effective December 30, 2018 using the alternative transition method which resulted in the recognition of operating lease right-of-use assets and operating lease liabilities of approximately $52.8 million and $67.3 million, respectively. The Company's consolidated financial statements as of and for the three and six months ended June 29, 2019 are presented under the new standard, while the comparative quarter presented is not adjusted and continues to be reported in accordance with the historical accounting policy. See Note 4, "Leases," for the required disclosures related to the impact of adopting this standard and a discussion of the Company's updated policies related to lease accounting.
Recently Issued Accounting Standards
In August 2018, the FASB issued ASU No. 2018-15, "Intangibles - Goodwill and Other - Internal-Use Software." The new standard aligns 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 (and hosting arrangements that include an internal use software license). The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019, with early adoption permitted. Implementation should be applied either retrospectively or prospectively to all implementation costs incurred after the date of adoption. The Company is currently evaluating the impact of the standard on its consolidated financial statements.
In August 2018, the FASB issued ASU No. 2018-13, "Fair Value Measurement: Disclosure Framework—Changes to the Disclosure Requirements for Fair Value Measurement." The amendment modifies disclosure requirements related to fair value measurement. The amendments to this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2019. Implementation on a prospective or retrospective basis varies by specific disclosure requirement. Early adoption is permitted. The standard also allows for early adoption of any removed or modified disclosures upon issuance of this ASU while delaying adoption of the additional disclosures until their effective date. The Company does not believe this amendment will have a material impact on its consolidated financial statements.
In June 2016, the FASB issued ASU No. 2016-13, "Measurement of Credit Losses on Financial Instruments," as clarified in ASU No. 2019-04 and ASU No. 2019-05. The guidance amends the impairment model by requiring entities to use a forward-
looking approach based on expected losses rather than incurred losses to estimate credit losses on certain types of financial instruments. This may result in the earlier recognition of allowances for losses. The guidance is effective for fiscal years beginning after December 15, 2019, including interim periods within those fiscal years, with early adoption permitted. The Company is currently evaluating the impact of the standards on its consolidated financial statements. 
From time to time, new accounting pronouncements are issued by FASB that are adopted by the Company as of the specified effective date. Unless otherwise discussed, the Company believes that recently issued standards, which are not yet effective, will not have a material impact on the Company’s consolidated financial statements upon adoption.
XML 32 R22.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition Disaggregation of Revenue (Tables)
6 Months Ended
Jun. 29, 2019
Revenue Recognition and Deferred Revenue [Abstract]  
Disaggregation of Revenue [Table Text Block]
Disaggregation of Revenue
The following table provides information about disaggregated revenue by geographical region (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
United States
$
124,472

 
$
111,526

 
$
238,537

 
$
218,388

EMEA
82,893

 
70,123

 
157,462

 
139,710

Other
52,807

 
44,668

 
101,834

 
85,287

Total revenue
$
260,172

 
$
226,317

 
$
497,833

 
$
443,385


XML 33 R23.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition Contract Balances (Tables)
6 Months Ended
Jun. 29, 2019
Revenue Recognition and Deferred Revenue [Abstract]  
Contract with Customer, Asset and Liability [Table Text Block]
Contract Balances
The following table provides information about receivables and contract liabilities from contracts with customers (in thousands):
 
June 29, 2019
 
December 29, 2018
Accounts receivable, net
$
90,401

 
$
162,166

Contract liabilities
3,075

 
5,756

The Company invoices customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract liabilities primarily relate to prepayments received from customers in advance of product shipments. The change in the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and the customer’s payment. During the three months ended June 29, 2019 and June 30, 2018, the Company recognized $5.3 million and $6.3 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. During the six months ended June 29, 2019 and June 30, 2018, the Company recognized $5.8 million and $6.7 million, respectively, of the contract liability balance as revenue upon transfer of the products to customers. The Company does not assess whether a prepayment received represents a significant financing component as the period between when the payment is received and the transfer of the products to the customer is generally one year or less.
XML 34 R24.htm IDEA: XBRL DOCUMENT v3.19.2
Leases (Tables)
6 Months Ended
Jun. 29, 2019
Operating Lease Cost [Abstract]  
Lease, Cost [Table Text Block]
The components of lease expense were as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Operating lease cost
$
1,969

 
$
3,939

Variable lease cost
1,316

 
2,136

Total lease cost
$
3,285

 
$
6,075


ScheduleOfLeasesSupplementalCashFlow [Table Text Block]
Supplemental cash flow information related to leases was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
Cash paid for amounts included in the measurement of lease liabilities:
 
 
 
Operating cash flows from operating leases
$
2,865

 
$
4,881

Right-of-use assets obtained in exchange for lease obligations:
 
 
 
Operating leases
$

 
$
52,767


Lessee, Operating Lease, Liability, Maturity [Table Text Block]
Maturities of operating lease liabilities were as follows as of June 29, 2019 (in thousands):
 
Operating leases
Remainder of 2019
$
3,435

2020
8,543

2021
8,255

2022
7,580

2023
7,127

Thereafter
41,198

Total minimum lease payments
$
76,138

Less: imputed interest
12,548

Present value of future minimum lease payments
$
63,590

Less: current portion of operating lease liabilities (Note 7)
5,522

Long-term lease liabilities
$
58,068


XML 35 R25.htm IDEA: XBRL DOCUMENT v3.19.2
Inventory (Tables)
6 Months Ended
Jun. 29, 2019
Inventory Disclosure [Abstract]  
Components of Inventory Inventory
Inventory consists of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
Raw materials
$
2,922

 
$
2,992

Finished goods
189,088

 
161,641

 
$
192,010

 
$
164,633


XML 36 R26.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets (Tables)
6 Months Ended
Jun. 29, 2019
Goodwill and Intangible Assets Disclosure [Abstract]  
Schedule of Goodwill [Table Text Block]
The following table summarizes the activity in the carrying amount of goodwill for the six months ended June 29, 2019 (in thousands):
Balance as of December 29, 2018
$
118,896

Acquisition
2,050

Effect of foreign currency translation
(408
)
Balance as of June 29, 2019
$
120,538


Other Intangible Assets
Intangible assets at June 29, 2019 and December 29, 2018 consisted of the following (in thousands):
 
June 29, 2019
 
December 29, 2018
 
Cost
 
Accumulated
Amortization
 
Net
 
Cost
 
Accumulated
Amortization
 
Net
Completed technology
$
28,100

 
$
23,396

 
$
4,704

 
$
26,900

 
$
21,607

 
$
5,293

Tradename
100

 
100

 

 
100

 
100

 

Customer relationships
11,255

 
1,859

 
9,396

 
11,291

 
1,365

 
9,926

Reacquired distribution rights
32,347

 
27,921

 
4,426

 
32,499

 
23,598

 
8,901

Non-competition agreements
262

 
152


110

 
263

 
110

 
153

Total
$
72,064

 
$
53,428

 
$
18,636

 
$
71,053

 
$
46,780

 
$
24,273


Estimated Future Amortization Expense Related to Current Intangible Assets
The estimated future amortization expense related to current intangible assets in each of the five succeeding fiscal years is expected to be as follows (in thousands):
 
Cost of Revenue
 
Operating Expenses
 
Total
Remainder of 2019
$
5,635

 
$
497

 
$
6,132

2020
1,140

 
1,016

 
2,156

2021
1,140

 
792

 
1,932

2022
915

 
792

 
1,707

2023
240

 
792

 
1,032

Thereafter
60

 
5,617

 
5,677

Total
$
9,130

 
$
9,506

 
$
18,636


XML 37 R27.htm IDEA: XBRL DOCUMENT v3.19.2
Accrued Expenses (Tables)
6 Months Ended
Jun. 29, 2019
Accrued Liabilities, Current [Abstract]  
Components of Accrued Expenses
 
June 29, 2019
 
December 29, 2018
Accrued other compensation
$
12,241

 
$
10,518

Accrued warranty
11,970

 
11,964

Accrued direct fulfillment costs
9,543

 
5,372

Accrued bonus
6,914

 
21,226

Current portion of operating lease liabilities
5,522

 

Accrued sales and other indirect taxes payable
4,931

 
11,397

Accrued income taxes
2,547

 
1,936

Accrued accounting fees
2,020

 
2,052

Accrued other
7,941

 
6,794

 
$
63,629

 
$
71,259


XML 38 R28.htm IDEA: XBRL DOCUMENT v3.19.2
Derivative Instruments (Tables)
6 Months Ended
Jun. 29, 2019
Derivative Instruments, Gain (Loss) [Line Items]  
Derivative Instruments, Gain (Loss) [Table Text Block]
Gains (losses) associated with derivative instruments not designated as hedging instruments are as follows (in thousands):
 
 
 
Three Months Ended
 
Six Months Ended
 
Classification
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Gain (loss) recognized in income
Other income, net
 
$
(1,085
)
 
$
1,707

 
$
(652
)
 
$
538


The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): 
 
 
Gain (loss) recognized in OCI on Derivative (1)
 
 
Three Months Ended
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Foreign currency forward contracts
 
$
(2,054
)
 
$
2,154

 
$
4,350

 
$
(560
)

(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Three Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
260,172

 
$
142,002

 
$
226,317

 
$
108,391

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
359

 
$

 
$
(113
)
 
$
370


 
 
Gain (loss) recognized in earnings on cash flow hedging instruments
 
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
 
Revenue
 
Cost of revenue
 
Revenue
 
Cost of revenue
Consolidated statements of income in which the effects of cash flow hedging instruments are recorded
 
$
497,833

 
$
260,117

 
$
443,385

 
$
209,674

 
 
 
 
 
 
 
 
 
Gain (loss) on cash flow hedging relationships:
 
 
 
 
 
 
 
 
Foreign currency forward contracts:
 
 
 
 
 
 
 
 
Amount of gain (loss) reclassified from AOCI into earnings
 
$
214

 
$

 
$
(279
)
 
$
(386
)

XML 39 R29.htm IDEA: XBRL DOCUMENT v3.19.2
Derivative Instruments Schedule of Derivative Instruments (Tables)
6 Months Ended
Jun. 29, 2019
Derivative [Line Items]  
Schedule of Cash Flow Hedges Included in Accumulated Other Comprehensive Income (Loss) [Table Text Block]
The following tables reflect the effect of derivatives designated as cash flow hedging for the three and six months ended June 29, 2019 and June 30, 2018 (in thousands): 
 
 
Gain (loss) recognized in OCI on Derivative (1)
 
 
Three Months Ended
 
Six Months Ended
 
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Foreign currency forward contracts
 
$
(2,054
)
 
$
2,154

 
$
4,350

 
$
(560
)

(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
Schedule of Derivative Instruments [Table Text Block]
The fair values of derivative instruments are as follows (in thousands):
 
 
 
Fair Value
 
Classification
 
June 29, 2019
 
December 29, 2018
Derivatives not designated as hedging instruments:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
480

 
$
551

Foreign currency forward contracts
Accrued expenses
 
598

 

Derivatives designated as cash flow hedges:
 
 
 
Foreign currency forward contracts
Other current assets
 
$
1,201

 
$
53

Foreign currency forward contracts
Other assets
 
3,454

 
172

Foreign currency forward contracts
Accrued expenses
 
1,102

 
335

Foreign currency forward contracts
Long-term liabilities
 
833

 
795


XML 40 R30.htm IDEA: XBRL DOCUMENT v3.19.2
Commitments and Contingencies (Tables)
6 Months Ended
Jun. 29, 2019
Commitments and Contingencies Disclosure [Abstract]  
Activity Related to the Warranty Accrual
Activity related to the warranty accrual was as follows (in thousands):
 
Three Months Ended
 
Six Months Ended
 
June 29, 2019
 
June 30, 2018
 
June 29, 2019
 
June 30, 2018
Balance at beginning of period
$
11,628

 
$
11,833

 
$
11,964

 
$
11,264

Provision
2,682

 
2,193

 
5,333

 
4,628

Warranty usage
(2,340
)
 
(2,793
)
 
(5,327
)
 
(4,659
)
Balance at end of period
$
11,970

 
$
11,233

 
$
11,970

 
$
11,233


XML 41 R31.htm IDEA: XBRL DOCUMENT v3.19.2
Industry Segment, Geographic Information and Significant Customers (Tables)
6 Months Ended
Jun. 29, 2019
Segment Reporting [Abstract]  
Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes The Company operates as one operating segment.
XML 42 R32.htm IDEA: XBRL DOCUMENT v3.19.2
Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items]        
Document Period End Date     Jun. 29, 2019  
Net income $ 7,207 $ 10,471 $ 29,727 $ 30,872
Weighted-average shares outstanding 28,079 27,615 27,970 27,802
Dilutive effect of employee stock options and restricted shares 684 722 809 856
Diluted weighted-average shares outstanding 28,763 28,337 28,779 28,658
Basic income per share $ 0.26 $ 0.38 $ 1.06 $ 1.11
Diluted income per share $ 0.25 $ 0.37 $ 1.03 $ 1.08
Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount 200   100  
XML 43 R33.htm IDEA: XBRL DOCUMENT v3.19.2
Summary of Significant Accounting Policies Other Assets (Details) - USD ($)
$ in Millions
Jun. 29, 2019
Dec. 29, 2018
Equity and cost method investments [Abstract]    
Equity Securities without Readily Determinable Fair Value, Amount $ 21.6 $ 15.1
XML 44 R34.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition Significant Judgments (Details) - USD ($)
$ in Millions
Jun. 29, 2019
Dec. 29, 2018
Revenue Recognition and Deferred Revenue [Abstract]    
Refund liability, product returns $ 44.5 $ 53.9
Refund liability, other credits and incentives $ 69.7 $ 97.7
XML 45 R35.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Disaggregation of Revenue [Line Items]        
Revenue from Contract with Customer, Excluding Assessed Tax $ 260,172 $ 226,317 $ 497,833 $ 443,385
UNITED STATES        
Disaggregation of Revenue [Line Items]        
Revenue from Contract with Customer, Excluding Assessed Tax 124,472 111,526 238,537 218,388
EMEA [Member]        
Disaggregation of Revenue [Line Items]        
Revenue from Contract with Customer, Excluding Assessed Tax 82,893 70,123 157,462 139,710
All Other Regions [Member]        
Disaggregation of Revenue [Line Items]        
Revenue from Contract with Customer, Excluding Assessed Tax $ 52,807 $ 44,668 $ 101,834 $ 85,287
XML 46 R36.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue Recognition Contract Balances (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Dec. 29, 2018
Revenue Recognition and Deferred Revenue [Abstract]          
Accounts Receivable, Net, Current $ 90,401   $ 90,401   $ 162,166
Contract with Customer, Liability, Revenue Recognized 5,300 $ 6,300 5,800 $ 6,700  
Contract with Customer, Liability $ 3,075   $ 3,075   $ 5,756
XML 47 R37.htm IDEA: XBRL DOCUMENT v3.19.2
Leases Lease Cost (Details)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
USD ($)
Jun. 29, 2019
USD ($)
Leases [Abstract]    
Operating Lease, Weighted Average Discount Rate, Percent 3.61% 3.61%
Operating Lease, Cost $ 1,969 $ 3,939
Variable Lease, Cost 1,316 2,136
Lease, Cost $ 3,285 $ 6,075
Operating Lease, Weighted Average Remaining Lease Term 9 years 6 months 29 days 9 years 6 months 29 days
XML 48 R38.htm IDEA: XBRL DOCUMENT v3.19.2
Leases Supplemental Cash Flow (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 29, 2019
Leases [Abstract]    
Document Period End Date   Jun. 29, 2019
Operating Lease, Payments $ 2,865 $ 4,881
Right-of-Use Asset Obtained in Exchange for Operating Lease Liability $ 0 $ 52,767
XML 49 R39.htm IDEA: XBRL DOCUMENT v3.19.2
Leases Maturity of Operating Lease LIability (Details) - USD ($)
$ in Thousands
Jun. 29, 2019
Dec. 30, 2018
Dec. 29, 2018
Leases [Abstract]      
Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year $ 3,435    
Lessee, Operating Lease, Liability, Payments, Due Year Two 8,543    
Lessee, Operating Lease, Liability, Payments, Due Year Three 8,255    
Lessee, Operating Lease, Liability, Payments, Due Year Four 7,580    
Lessee, Operating Lease, Liability, Payments, Due Year Five 7,127    
Lessee, Operating Lease, Liability, Payments, Due after Year Five 41,198    
Lessee, Operating Lease, Liability, Payments, Due 76,138    
Lessee, Operating Lease, Liability, Undiscounted Excess Amount 12,548    
Operating Lease, Liability 63,590 $ 67,300  
Operating Lease, Liability, Current 5,522   $ 0
Operating Lease, Liability, Noncurrent $ 58,068   $ 0
XML 50 R40.htm IDEA: XBRL DOCUMENT v3.19.2
Leases Financial Statement Impact of Adopting ASC 842 (Details) - USD ($)
$ in Thousands
Jun. 29, 2019
Dec. 30, 2018
Dec. 29, 2018
Leases [Abstract]      
Operating lease right-of-use asset $ 50,002 $ 52,800 $ 0
Operating Lease, Liability $ 63,590 $ 67,300  
XML 51 R41.htm IDEA: XBRL DOCUMENT v3.19.2
Inventory (Details) - USD ($)
$ in Thousands
Jun. 29, 2019
Dec. 29, 2018
Inventory Disclosure [Abstract]    
Inventory, Raw Materials, Net of Reserves $ 2,922 $ 2,992
Inventory, Finished Goods, Net of Reserves 189,088 161,641
Inventory $ 192,010 $ 164,633
XML 52 R42.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Dec. 29, 2018
Business Acquisition [Line Items]          
Goodwill $ 120,538   $ 120,538   $ 118,896
Amortization of Acquired Intangible Assets $ 3,400 $ 4,900 $ 6,700 $ 10,000  
XML 53 R43.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Dec. 29, 2018
Finite-Lived Intangible Assets [Line Items]          
Document Period End Date     Jun. 29, 2019    
Finite-Lived Intangible Assets, Gross $ 72,064   $ 72,064   $ 71,053
Intangible assets accumulated amortization 53,428   53,428   46,780
Intangible Assets, Net 18,636   18,636   24,273
Amortization of Acquired Intangible Assets 3,400 $ 4,900 6,700 $ 10,000  
Completed technology          
Finite-Lived Intangible Assets [Line Items]          
Finite-Lived Intangible Assets, Gross 28,100   28,100   26,900
Intangible assets accumulated amortization 23,396   23,396   21,607
Intangible Assets, Net 4,704   4,704   5,293
Trade Names          
Finite-Lived Intangible Assets [Line Items]          
Finite-Lived Intangible Assets, Gross 100   100   100
Intangible assets accumulated amortization 100   100   100
Intangible Assets, Net 0   0   0
Customer-Related Intangible Assets [Member]          
Finite-Lived Intangible Assets [Line Items]          
Finite-Lived Intangible Assets, Gross 11,255   11,255   11,291
Intangible assets accumulated amortization 1,859   1,859   1,365
Intangible Assets, Net 9,396   9,396   9,926
Distribution Rights [Member]          
Finite-Lived Intangible Assets [Line Items]          
Finite-Lived Intangible Assets, Gross 32,347   32,347   32,499
Intangible assets accumulated amortization 27,921   27,921   23,598
Intangible Assets, Net 4,426   4,426   8,901
Noncompete Agreements [Member]          
Finite-Lived Intangible Assets [Line Items]          
Finite-Lived Intangible Assets, Gross 262   262   263
Intangible assets accumulated amortization 152   152   110
Intangible Assets, Net $ 110   $ 110   $ 153
XML 54 R44.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 29, 2019
Dec. 29, 2018
Goodwill [Line Items]    
Goodwill $ 120,538 $ 118,896
Goodwill, Acquired During Period 2,050  
Goodwill, Foreign Currency Translation Gain (Loss) $ (408)  
XML 55 R45.htm IDEA: XBRL DOCUMENT v3.19.2
Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details)
$ in Thousands
Jun. 29, 2019
USD ($)
Finite-lived intangible assets, schedule of amortization expense [Line Items]  
Remainder of 2018 $ 6,132
2019 2,156
2020 1,932
2021 1,707
2022 1,032
Thereafter 5,677
Total 18,636
Cost of revenue  
Finite-lived intangible assets, schedule of amortization expense [Line Items]  
Remainder of 2018 5,635
2019 1,140
2020 1,140
2021 915
2022 240
Thereafter 60
Total 9,130
Operating Expense [Member]  
Finite-lived intangible assets, schedule of amortization expense [Line Items]  
Remainder of 2018 497
2019 1,016
2020 792
2021 792
2022 792
Thereafter 5,617
Total $ 9,506
XML 56 R46.htm IDEA: XBRL DOCUMENT v3.19.2
Accrued Expenses (Details) - USD ($)
$ in Thousands
Jun. 29, 2019
Dec. 29, 2018
Accrued Liabilities, Current [Abstract]    
Accrued Professional Fees, Current $ 2,020 $ 2,052
Accounts Payable, Current [Abstract]    
Accrued Employee Benefits 12,241 10,518
Accrued warranty 11,970 11,964
Accrued bonus 6,914 21,226
Operating Lease, Liability, Current 5,522 0
Accrued direct fulfillment costs 9,543 5,372
Accrued sales and other taxes payable 4,931 11,397
Accrued federal and state income taxes 2,547 1,936
Accrued other 7,941 6,794
Accrued expenses $ 63,629 $ 71,259
XML 57 R47.htm IDEA: XBRL DOCUMENT v3.19.2
Derivative Instruments Schedule of Derivative Instruments (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Dec. 29, 2018
Derivative [Line Items]          
Document Period End Date     Jun. 29, 2019    
Revenue $ 260,172 $ 226,317 $ 497,833 $ 443,385  
Total cost of revenue 142,002 108,391 260,117 209,674  
Designated as Hedging Instrument [Member]          
Derivative [Line Items]          
Derivative, Notional Amount 389,900   389,900   $ 366,700
Not Designated as Hedging Instrument [Member]          
Derivative [Line Items]          
Derivative, Notional Amount 48,000   48,000   56,000
Accrued Liabilities [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Other Derivatives Not Designated as Hedging Instruments at Fair Value, Net 598   598   0
Cash Flow Hedging [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Instruments, Gain Recognized in Other Comprehensive Income (Loss), Effective Portion [1] (2,054) 2,154 4,350 (560)  
Other Nonoperating Income (Expense) [Member]          
Derivative [Line Items]          
Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net (1,085) 1,707 (652) 538  
Cost of revenue | Cash Flow Hedging [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net 0 370 0 (386)  
Sales Revenue, Net [Member] | Cash Flow Hedging [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net 359 $ (113) 214 $ (279)  
Not Designated as Hedging Instrument [Member] | Other Current Assets [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Asset 480   480   551
Designated as Hedging Instrument [Member] | Cash Flow Hedging [Member] | Accrued Liabilities [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Liability 1,102   1,102   335
Designated as Hedging Instrument [Member] | Cash Flow Hedging [Member] | Other Noncurrent Liabilities [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Liability 833   833   795
Designated as Hedging Instrument [Member] | Cash Flow Hedging [Member] | Other Current Assets [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Asset 1,201   1,201   53
Designated as Hedging Instrument [Member] | Cash Flow Hedging [Member] | Other Noncurrent Assets [Member] | Foreign Exchange Forward [Member]          
Derivative [Line Items]          
Derivative Asset $ 3,454   $ 3,454   $ 172
[1]
(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
XML 58 R48.htm IDEA: XBRL DOCUMENT v3.19.2
Derivative Instruments (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Derivative Instruments, Gain (Loss) [Line Items]        
Document Period End Date     Jun. 29, 2019  
Revenue $ 260,172 $ 226,317 $ 497,833 $ 443,385
Total cost of revenue 142,002 108,391 260,117 209,674
Foreign Exchange Forward [Member] | Cash Flow Hedging [Member]        
Derivative Instruments, Gain (Loss) [Line Items]        
Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax [1] (2,054) 2,154 4,350 (560)
Foreign Exchange Forward [Member] | Sales Revenue, Net [Member] | Cash Flow Hedging [Member]        
Derivative Instruments, Gain (Loss) [Line Items]        
Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net 359 (113) 214 (279)
Foreign Exchange Forward [Member] | Cost of revenue | Cash Flow Hedging [Member]        
Derivative Instruments, Gain (Loss) [Line Items]        
Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net $ 0 $ 370 $ 0 $ (386)
[1]
(1)
The amount represents the change in fair value of derivative contracts due to changes in spot rates.
XML 59 R49.htm IDEA: XBRL DOCUMENT v3.19.2
Fair Value Measurements Fair Value on a Recurring Basis (Details) - USD ($)
$ in Thousands
3 Months Ended
Jun. 29, 2019
Dec. 29, 2018
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value $ 0 $ 2,000
Available-for-sale Securities, Amortized Cost Basis [1] 24,018 30,035
conversion of debt (2,000)  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and Cash Equivalents, Fair Value Disclosure   3,730
Available-for-sale Securities 0 [1] 0
Convertible Debt, Fair Value Disclosures   0
Derivative Asset 0 0
Assets, Fair Value Disclosure 0 3,730
Derivative Liability 0 0
Financial and Nonfinancial Liabilities, Fair Value Disclosure 0 0
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and Cash Equivalents, Fair Value Disclosure [2]   0
Available-for-sale Securities [2] 23,984 [1] 29,605
Convertible Debt, Fair Value Disclosures [2]   0
Derivative Asset 5,135 776 [2]
Assets, Fair Value Disclosure [2] 29,119 30,381
Derivative Liability [2] 2,533 1,130
Financial and Nonfinancial Liabilities, Fair Value Disclosure [2] 2,533 1,130
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and Cash Equivalents, Fair Value Disclosure [3]   0
Available-for-sale Securities [3] 0 [1] 0
Convertible Debt, Fair Value Disclosures [3]   2,000
Derivative Asset [3] 0 0
Assets, Fair Value Disclosure [3] 0 2,000
Derivative Liability 0 0 [3]
Financial and Nonfinancial Liabilities, Fair Value Disclosure $ 0 $ 0 [3]
[1]
As of June 29, 2019, the Company’s investments had maturity dates ranging from August 2019 to March 2021.
[2]
Level 2 fair value estimates are based on observable inputs other than quoted prices in active markets for identical assets and liabilities, quoted prices for identical or similar assets or liabilities in inactive markets, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
[3]
Level 3 fair value estimates are based on inputs that are generally unobservable and typically reflect management’s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques, including option pricing and discounted cash flow models. Unobservable inputs used in the models are significant to the fair values of the assets and liabilities.
XML 60 R50.htm IDEA: XBRL DOCUMENT v3.19.2
Stockholders Equity (Details) - USD ($)
3 Months Ended 6 Months Ended 12 Months Ended
Jun. 30, 2018
Jun. 30, 2018
Dec. 29, 2018
Feb. 27, 2018
Equity [Abstract]        
Stock Repurchase Program, Authorized Amount       $ 50,000,000.0
Stock Repurchased and Retired During Period, Shares 769,000 799,000 798,794  
Stock Repurchased and Retired During Period, Value $ 48,070,000 $ 50,000,000 $ 50,000,000.0  
XML 61 R51.htm IDEA: XBRL DOCUMENT v3.19.2
Commitments and Contingencies - Additional Information (Detail)
$ in Millions
Jun. 29, 2019
USD ($)
Outstanding POs [Abstract]  
Contractual Obligation $ 213.0
XML 62 R52.htm IDEA: XBRL DOCUMENT v3.19.2
Commitments and Contingencies - Activity Related to Warranty Accrual (Detail) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Movement in Standard Product Warranty Accrual [Roll Forward]        
Balance at beginning of period $ 11,628 $ 11,833 $ 11,964 $ 11,264
Provision 2,682 2,193 5,333 4,628
Warranty usage (2,340) (2,793) (5,327) (4,659)
Balance at end of period $ 11,970 $ 11,233 $ 11,970 $ 11,233
XML 63 R53.htm IDEA: XBRL DOCUMENT v3.19.2
Income Taxes (Details)
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Income Tax Disclosure [Abstract]        
Effective Income Tax Rate Reconciliation, Percent (6.30%) 29.60% 2.00% 24.30%
XML 64 R54.htm IDEA: XBRL DOCUMENT v3.19.2
Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 29, 2019
USD ($)
Jun. 30, 2018
USD ($)
Jun. 29, 2019
USD ($)
segment
Jun. 30, 2018
USD ($)
Segment Reporting, Reconciling Item for Operating Profit (Loss) from Segment to Consolidated [Line Items]        
Number of Reportable Segments | segment     1  
Total cost of revenue $ 142,002 $ 108,391 $ 260,117 $ 209,674
Gross profit 118,170 117,926 237,716 233,711
Research and development 35,650 34,924 70,919 67,869
Selling and marketing 56,409 45,910 95,245 77,239
General and administrative 20,592 23,468 43,499 49,301
Other income, net $ 1,533 $ 1,507 $ 2,813 $ 2,026
XML 65 R55.htm IDEA: XBRL DOCUMENT v3.19.2
Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail)
3 Months Ended 6 Months Ended
Jun. 29, 2019
Jun. 30, 2018
Jun. 29, 2019
Jun. 30, 2018
Revenues from External Customers and Long-Lived Assets [Line Items]        
Document Period End Date     Jun. 29, 2019  
Sales Revenue, Net [Member] | Amazon [Member] | Customer Concentration Risk [Member]        
Revenues from External Customers and Long-Lived Assets [Line Items]        
Concentration Risk, Percentage 28.00% 23.80% 22.30% 17.70%
EXCEL 66 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( &! 4\?(\\#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+,*P).B0\5?UX^8 TBTH_0(:+L A#&^NQT:E8(C M-R."?S]PN -02P,$% @ 8$!3R?HAPZ" L0 ! !D;V-0&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 " !@0%/@QNF5^X K @ $0 &1O8U!R;W!S+V-O M&ULS9+/2@,Q$(=?17+?G:2%JF&[%\53"X(%Q5M(IFUP\X=D9+=O;W9M MMX@^@,?,_/+--S"-CE*'A,\I1$QD,=\,KO-9ZKAF1Z(H ;(^HE.Y+@E?FON0 MG*+R3 >(2G^H \*"\Q4X)&44*1B!59R)K&V,ECJAHI#.>*-G?/Q,W00S&K!# MAYXRB%H :\>)\31T#5P!(XPPN?Q=0#,3I^J?V*D#[)P621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS M[BYBZ(:(E/)X8-DOV]:[MR_>X%#BVR]*+41B1%G\@MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C( MWXV(]ZMOFCU7H5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU M+,76>)7 \:V@S&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=* MY \FIS_I,C0'HYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_ MT=HWPJOX@L Y?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=R MSTS0LS0[=R M2^JVE+ZU)CA*]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZ MG=PZ.)Z8D;D*TU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCR MHB'NH8:8S\-#AWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)2 M56 Q6\8#*Y"B?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYE ML<%5'<]56_*POFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7G MFYRN>B)V^I=WP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5 M' 86%S+D4.Z2D 83 >LX=SFWJXPD6L_UC6'ODR MWSEPVSK> U[F$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\ MU*M:I60K$3]+!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHS MU8NL.8T*;T'50.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\! M4$L#!!0 ( &! 4\IS%G%,0, #8/ 8 >&PO=V]R:W-H965T&UL?5?MCILP$'P5Q ,<> WY."61[E)5K=1*IZO:_N82)T$'. 4G MN;Y]CFC M:NR=G6[KPMC+=I]TQU856T>JJX32=)+41=G$JX4;>VI7"WTR5=FHIS;J3G5= MM+\?5:4ORUC$[P//Y?Y@^H%DM3@6>_5-F>_'I]9>)6.5;5FKIBMU$[5JMXP? MQ/U:4D]PB!^ENG0WYU&_E!>M7_N+S]MEG/8S4I7:F+Y$80]GM595U5>R\_@U M%(U'S9YX>_Y>_:-;O%W,2]&IM:Y^EEMS6,:S.-JJ77&JS+.^?%+#@O(X&E;_ M19U59>']3*S&1E>=^XTVI\[H>JABIU(7;]=CV;CCY7HGRP8:)M! H)$@T_\2 MY$"0(T$XA>0Z,[?4#X4I5HM67Z+VZM:QZ%\*<2_MP]ST@^[9N7MVM9T=/:_2 M17+NRPR(QRN";A!B1"2V]BA 2."1&)W^%5ASA,0"$JY .KJ\H6>8GD%ZYNC9 M#3WW'@!'3+! #@5R1I]Z APQPP(3*#!A]+DGP!$BQ0I3J##E?.%) AAB1F4 MF'&^]"0 ).#T'$K,.=^W&D "7HL4QRGE%7R[ 28D$LBLX"(S7P1@Y@$5&-P' M0:P"L6\#P 2^#@*G5TA>@7P5@ E\(@0.N> 9ILQ7 9@\H(*3+GB0:>*K ,PT MH(+C+GB:B;D/,"'W<>0%#[1D[@-,R'V<>L$S+9G[ !-R'P=?\%A+YC[ !-PG M''WBL9:^^P@3<)]P]HGG6OKN(TS ?<+9)Y[KS'P3SW7FNX\P(?=Q]HGG.F/N#U@^LA(''_)HYW[6R6$\=^!Y*8+J56[=PU;%VWTJ7'=XLWH MV!0^N)XP^0N_=I1?BW9?-EWTHHWMA5S'LM/:*#N5],XN^&";V/&B4CO3GT[M M>7OMY*X71A^'+C496^75'U!+ P04 " !@0%/;I"(ZTL$ !%% & M 'AL+W=O>]SH)9T$D(3;++Z;^O$U@$,^.]@22\8[]F[,<3+\YM][W?AS#, M?C3UL5_.]\-P>LJR?K,/3=5_:4_A&'_9M5U3#?&V>\WZ4Q>J[134U!DJ9;.F M.ASGJ\7T[+E;+=JWH3XZ/2_G,/]X\/7PNA_&!]EJ<:I> MPU]A^'9Z[N)==FME>VC"L3^TQUD7=LOYS_!4:CT&3(J_#^';W[7*N1D>A#IMA;***7^^A#'4]MA1]_'MM='[K]UFK?OI<[9Y MZX>VN;82K335C\OWX3A]GZ_M?X3) 7@-P%L Y)\&Z&N )@'9Q=DTU%^JH5HM MNO8\ZR[9.E7CI( G'?_,S?AP^N^FW^)H^_CT?67<(GL?V[E*UA<)WDGP45%R MA?$W21;[OYE T01.\?H^OI#CM1BOI_C\+MXJ,HB+Q$Z2XR0!C:XP9"223&FG M93>YZ";G;H"XN4C,73>H"Y\3,UREP2HC>S&B%\.]D.2M#>NE4+DBCDNN HM@ MK6S&BF8L-Z.)&10T*E5Z=Z M\.)%+YY[(3-S[;D7#V"H&2XSD.?:R6X*T4W!W5CBIF#=.'#HB1FN,DYA8LZ MD@&EN!M&*,4[4DHQ3'%9(DN0@"5P+YYZ ;YJM:>KKI1DMG )[(',34#NIZ!^ MD*\55$;37$DZ\+Y(94LF,7 4.XKBJ^:A)V^UI8:X#'-,H1AD%@.'L:,P!H'& M1A4%]<-E8+1)S2"9Q\"!["B0@;/61P0"W:L$G;.VN-ML'AW)4 ;+-M_D?RR# M%#A)'24I<$AZZW,V";D,M'4Y)@S)- 6.4T=Q"AR4<0HB2SJ7.E\8K2MQ1DB06*B5*4(]51I")')0*K4015KE+5&\HX18Y33W&*G)-Q:6GJ M1H"N]BZ5*)FFR&GJ*4V18])Z3RO@4I"!\SZQT%&F*7*:>DI3Y)1$A%S3E2[I M8KFM$TL=99HBKW%I*M:2AI;^GVL>G?0APQ@YC#V% M'W+*(IU8I21RJ==,&<3(0>P9^CABP>>6OJF4DLZAC'QG(F@.Y8"_W'+4F MOMO33;:4=-IH3%!')TX;.)0+2D'-#Q+$&D[0B35<=G>>,QZP_5EUKX=C/WMI MAZ%MI@.<7=L.(;:IOL3Q[4.UO=W483>,ERY>=Y>#K1P]3]0 M2P,$% @ 8$!3]"I=W8- @ 708 !@ !X;"]W;W)KQ[_R_N]^9<,D'RIYY#2"*1#M]@ZB=VG:GY'W %(N6*1-8X4,+UMW.X<$'; M*8M$:?'KN#:=7H?Q)+F;PNP!P100S %^]&Y . 6$1@ :R72K7[' 9<[HX+#Q M8?58_2;\;2@O\Z"<^N[TF>R62^^UO MR=%5Y)LG]* D6$D-1K15Q-DN0K#]# M!%:(0,='2XC0@!@EL99T8PE/?PR4CW4W/*&5)USS1 ;/6I(9DNI=R0U%9*6( MUA2Q03%*TD6WWL;S#8X/1#=#5X?V)V;CKN[*F0 M,T._V2=*!*-AJ#]-,S1_(]2_@-02P,$% M @ 8$!3[[ELM6$! U!0 !@ !X;"]W;W)K*U MAZ-L;F*+_CBEU>?W-'_ M\EPW5='YQ^8E:D^-*W9#IZJ,.&,ZJHK#<;E9#VV/S69=OW;EX>@>FT7[6E5% M\U_BROI\OX3E>\.7P\N^ZQNBS?I4O+B_7/?WZ;'Q3]$ERNY0N6-[J(^+QCW? M+Q]@E?.APT#\_B^UKV]75%,6G4A7?Q\_#-M>OHK8\S(-"=WPZ0A@0P0$G\-$K^<92;1 4Y76(((&\"H$&2D=$#4@9P\6,,&#T M4!C*YF@FZGDP69"4""$4EA?B'&C() 78B(VFLVHHUT)$+8$ M&XD$",.AL$E*20IONQE!\3C41IF2JQ/E5AKM28 P)7B@! @OX0T@EA92(&.- M#1>!"2;P09@3F&3^))A11YL3(-P)!!M*Z!1^D?CT2@E*AMZ$H%2X5X:0M3!C M3(!V)D!8$\"^:X*N+;GAN-A2@O([2KBAA!BWAF/;16""Q69NQZ2M"1#>!'N@ M9(+,U4CL#M=12E(B..5""NZPU.$[8@9_N\EI3"C<85G)&:Q^,AS]O\%Y)8B)8.SH:GJR>]=L;L\E.ZYZ[\:_[T9[]G&AZX^37>(T>4B<_,_4$L#!!0 ( &! M 4^L5(ZJQ0( +T) 8 >&PO=V]R:W-H965T&ULC59M M;YLP$/XKB.\MV+Q'2:1",FW2)E6=MGUV$R=!!9S93M+]^]F&4')VNWT!^WCN MN7O.-K[YA?$7<:!4>J]MTXF%?Y#R. L"L3G0EHA[=J2=^K)CO"523?D^$$=. MR=8XM4V PS -6E)W_G)N;(]\.62>.+4MX7]*VK#+PD?^U?!4[P]2 M&X+E_$CV]#N5/XZ/7,V"D65;M[03->L\3G<+_P'-UH7&&\#/FE[$9.QI)<^, MO>C)E^W"#W5"M*$;J1F(>IUI19M&$ZDT?@^<_AA2.T['5_9/1KO2\DP$K5CS MJ][*P\+/?6]+=^34R"=V^4P'/8GO#>*_TC-M%%QGHF)L6"/,T]N'/#HH&)_Y! -#M&;0_RA0SPXQ/\;(1D<$A AZ+6; M8JZ(),LY9Q>/]]OA2/2N0[-$+==&&\WJF&^JGD)9STN$\GEPUD0#INPQ>(H) MPUO,RH$9$8'*8$P#N](HL>6.;P-4-@*%""3Q3Y;UQRPWB4;.>D6&(+ZI5P+J MU6-2@^D,)L-A!O38(!3&&51DHW"18<"UME%1F&?8K2MVZHH-172CJW 3)$Z" MQ"X,!IND[#')5'-6Q* P-N@.(80C4!D'+,U24!@'*,GRQ*TK=>I*';K *I6I M(^4D!NHK&X7228U[638HPBF(MW;$P]$[RYTY564.5>"LE)DC2@JWL0.$4BC* M"8*B;%",WSF:N5-3[M $=DV96T$*<'HK&Y(#T2L;@D/PTUS;F+OW-E[AE%,X MY("S4A:./TT.JE_9H#P'HEHEF%'/:5ZDWZ5N*-OF]LOA&^KSOA/3.I;DQSK^T8DU0E M']ZKM3BH7FJ<-'0G]3!38]YW%/U$LN/0+ 5CQ[;\"U!+ P04 " !@0%/ MM&NS=LX& #*)@ & 'AL+W=OP^'PQ']S1'EB]=F__WP6-?MY,=VLSM<3A_;]NGS?'ZX?:RWU>%3\U3OXO_< M-_MMU<:W^X?YX6E?5W?]H.UF3DKY^;9:[Z97%_UG7_97%\USNUGOZB_[R>%Y MNZWV_UW7F^;U=0-ZQ=_K^O7P[O6D6\JWIOG>O?GM[G*JNHSJ37W;=B&J M^.>E7M2;31_U2[V)\BZ3.,=MLSGT_TYNGP]MLQVBQ%2VU8_C MW_6N__LZQ'\;A@?0,(!. [0>'6"& >8T@&AT@!T&V-, XT<'N&& ^SE#&!W@ MAP'^YPS]@/FQ6'WU;ZJVNKK8-Z^3_7$#/57=/M6??;R^M]V'_>7L_R]>@$/\ M].5*D[N8OW2!!LWU44.)QJ>:!=*$5'.#-$6J62)-F6I60&/423./ZSTMFN"B MJ0]@DP":+>BH<;UFUVLHE-8IE9G)P)D,F(E8>8\:_VXF&Y3AU5M(64R(55AJ M=!DAPT(M4:A0%KS.*%I)>/D6+M^"Y1NV+BL*[4.VR@Y.X\ TEE79R>OI%=OI M"R=7S"H,PUBI LS\/+6:S*%B7 >0*8AWUKKX.81[%,@MPJK"(RQBRS M1PJ89P'R9!OVNA!S:#*!\^6<*DFFA,F4(!F&J$4I%^QT]N)HA;FKP$PE!Z^2 M4QG' ;(89#Y_&6_.1DISSO0*+7.VBN>L07E\09SAYV1I0ICC&H#<:IZ0)#F' MP\VX)DT%@UX#TFO12"51C2H"J\URD+FL+$T(HU<#]EK>>K2$[RR497XS8_YJ M &!K^%P2KC.70&W8S4!7\.LE,3RS9;8Y:4QB#5 L2R19'$M41"^0F0O36 ,< MRQ))VK(2I5-AH&I$5&YOM(0E%2J8_&08F!H14]10(M.6WG/SMQAT/DV*7WL9 M3)=:D>;?(JFCLK1&<1))G2O*3-<@3'-"-.=&AR2#G<_6FS"#"3!8>!V2<"52 MW+(/JC&W@P.Y3,89LXW<-C<\) %L\WN1,(,)N6UN>4C"E1.(@/'EA9%19CJ3 M+.8S(6_,?0\!3K^ MK.\Y$R?-%Y.;$+FYZR'@@DM7L.NY.BM+$\)\)\!WX7H(F&'/BS.J25/!]"= M?^%Z2%)=*QLXKPEP/9&EM]L8Q : 6+1T \QP\'G78S"*#;+#O*4;"=F9C8V6 M,P?IN.LQP#/'6#[C>@SFL?G(Z8=!QQ]64;Y&F?./#QV 2)A:5RB^IQ<&G5MP M*P^"::>=8YM_"71&1>O+)ET!W( 4<=(12%=.P?4:9IXNY+5\, MJC'3! .].\-,,\8=QZ#[#>XF#;#^(;\=+>XE%IEZ;B>M["6\,E8>S["K>0.B MS$PF6=R,++HOX';2R@82,>3XM^*L+$T(MQF+V@PWE%:VF9G+-V*+FXQ%388[ M2@LXWGW5>4:RQ\SX/LZ$RE@GFSD:1RV!VTHK84^>(W%U3I6F@UN"14CB,>824"3UAP>[OQ!_+E :<:8]0ZQ7CS*DA"W(\_5,,0=@CAO M@4Y"G+? 03+Z8 VT@LR]G\-MP*$VP%N@D^P.KN00.Z=*T\& =^B AS= !P[@ M\RQ@\ ^$7;DX2.%&EZ6 .P1@41E@M M- M1MXC?D29/CS'M/:(UKP]>LEA%TH7^ DXT,6DV)4%(EU8[UDS6@*=*?W[F[_C MI@6ZV![%P=O\W2]XNE]Y_5'M']:[P^1;T[;-MO_)SGW3M'4,J3[%LC[6U=WI MS::^;[N7(;[>'W]==7S3-D_#+\?FIY^O7?T/4$L#!!0 ( &! 4^L,LI- M5@0 $P4 8 >&PO=V]R:W-H965T&UL?9A;;^,V$(7_ MBN'WK,CA58%C('%1M$ +++9H^ZS83&RL9+F2$F__?76+5\LY[$LL,8?#,Q3U M<<3-M6Z^ML<0NM6WJCRW#^MCUUWNLZS='T-5M)_J2SCW_WFIFZKH^MOF-6LO M32@.8Z>JS$@(FU7%Z;S>;L:VS\UV4[]UY>DK]JVJBN;?IU#6UX>U7'\T M?#F]'KNA(=MN+L5K^"-T?UX^-_U==HMR.%7AW)[J\ZH)+P_K1WF_4V;H,"K^ M.H5KN[A>#:D\U_77X>;7P\-:#(Y"&?;=$*+H?][#+I3E$*GW\<\<='T;<^BX MO/Z(_O.8?)_,<]&&75W^?3ITQX>U7Z\.X:5X*[LO]?67,"=DUJLY^]_">RA[ M^>"D'V-?E^WX=[5_:[NZFJ/T5JKBV_1[.H^_USG^1S?<@>8.=.L@S?]V4',' M];V#'I.?G(VI_E1TQ7;3U-=5,SVM2S$L"GFO^LG<#XWCW(W_Z[-M^];WK=1F MD[T/@6;-TZ2AI>:FR/KHMR$(#?%$K#O].,".*Z1(#*%@%FH,H'[(PN( &@;0 M8P"]#"#C:9@T=M2&C&%ZX MYDZ3\-A*#JWDP(J,K.1L&"47LS]Y 2*OL1,I, 0$7W$FL61E@B,2I*-BD$AF MU3HOXN>,9%9XDS $J?,HB1FRS _QQTA.RIA/2">%$BKA"$-**NY(QXX4&$F3 MCI\YU)&SJ>>.J2"ZUB2T!' MCF1B:Y$8IA+0U+ MDH.2Y'*!S(Z S*KD'&&@2@?>U@22)<:@1!QT<4X )AO&E)SKH[;;2,'0&9]"JQ4Q"&(@E@*-ZX9M%RI&@[V0&) MI<03)PQ7 G"U\;9%G)KD95R> )5(>,%<)-]BS@PV;0 IEJM$ELH8:02 M1ZJT%)OAK#3>,S]];4Z>QN 3!F5*'T(PY0 M3&T,4^*09),#"D^17H(8HP0P:F.,$N CF9S-#I 9D5."HPIS5 &.VIBCBD/R M;OD-.!E"*B43JUEAEBK 4A>S5 &6:HK+0J"Z4[E/5(54XG/:8!5%V-5<6!*12Z/RP.@\][Y1.VL,%F5YAASJ1"8A J4 MEJS:G47+SW?M6/4-5/W'3OQ:9(LSF"HTK^-Q5;O:UV_G;CCM6+3>CL0>:3C# MB=J?Y/UN.MCZ'F8Z9_N]:%Y/YW;U7'==78WG."]UW87>I/C4FSR&XG"[*<-+ M-URZ_KJ9SK>FFZZ^S&=WV>T &PO=V]R:W-H965T&UL?5/;;MLP#/T501]0)4K: M#(%MH.DP;, &!!VV/2LV;0O5Q9/DN/O[4;+C>9VQ%XND>0X/*2H;K'OQ+4 @ MKUH9G],VA.[(F"];T,+?V0X,_JFMTR*@ZQKF.P>B2B"M&-]L'I@6TM B2[&S M*S+;!R4-G!WQO=;"_3J!LD-.M_06>)9-&V* %5DG&O@*X5MW=NBQF:62&HR7 MUA '=4X?M\?3/N:GA.\2!K^P2>SD8NU+=#Y5.=U$0:"@#)%!X'&%)U J$J&, MGQ,GG4M&X-*^L7](O6,O%^'AR:H?L@IM3M]14D$M>A6>[? 1IG[N*9F:_PQ7 M4)@>E6"-TBJ?OJ3L?;!Z8D$I6KR.IS3I'";^&VP=P"< ?P-@8Z&D_+T(HLB< M'8@;9]^)>,7;(\?9E#&81I'^H7B/T6NQ/=QG[!J)IIS3F,.7.7,&0_:Y!%\K M<>+_P/DZ?+>J<)?@N[\4/JP3[%<)]HE@_]\6UW(.;XJPQ4PUN"9MDR>E[4W: MY$5T7MA'GN[D3_JX[5^$:Z3QY&(#WFR:?VUM )2RN<,5:O&!S8Z".D3S@+8; MUVQT@NVF%\3F9US\!E!+ P04 " !@0%/SEM:(K4! #2 P & 'AL M+W=O!!MYX*#E7G/6_@.[D=_-MYB"TLM%&@K4!,#34'O=L=3 M%N)CP*. T:[.)%1R07P*QI>ZH$D0!!(J%QBXWZYP#U(&(B_CU\Q)EY0!N#Z_ ML'^*M?M:+MS"/ M;L/WFPKW$;[_1^&';8)LDR"+!-F;)6[$')+_DK!53Q68-DZ3)14..D[RRKL, M[%T:W^1O^#3MW[AIA;;D@LZ_;.Q_@^C 2TEN_ AU_H,MAH3&A>.M/YMIS";# M83__(+9\X_(/4$L#!!0 ( &! 4]5$NWXM@$ -(# 9 >&PO=V]R M:W-H965T5%2NX)VWO='QES5 M@>+NQO2@\:8Q5G&/IFV9ZRWP.H*49.EN]X$I+C0M\^@[VS(W@Y="P]D2-RC% M[>\32#,6-*&OCB?1=CXX6)GWO(5OX+_W9XL66UAJH4 [832QT!3T+CF>LA ? M WX(&-WJ3$(E%V.>@_&Y+N@N" ()E0\,'+8ATV)HO('[GF96S,2._6^Y^&) MDV.*O:F",[8BWJ%XA]YKF1R2G%T#T1QSFF+2=-// M/X@MW[C\ U!+ P04 " !@0%/+(H:K+2X^_M2LNNZG5\DD>(Y/*2H;##VV;4 GKPJJ5U.6^^[ V.N;$%Q M=V4ZT'A3&ZNX1],VS'46>!5!2K)DL[EAB@M-BRSZ3K;(3.^ET'"RQ/5*C:%H?'*S(.M[ $_C?WCOL0'P/^ M"!C=B8*"K_QCTO,FL&8L?>=SP\\?:0 M8&_*X(RMB'K!/L5PGVD6#_B>#V2XEK,>F7)&S14P6VB=/D2&EZ'2=YX9T']BZ) M;_(1/D[[+VX;H1TY&X\O&_M?&^,!I6RN<(1:_&"S(:'VX7B+9SN.V6AXTTT_ MB,W?N'@#4$L#!!0 ( &! 4_0&(($M@$ - # 9 >&PO=V]R:W-H M965T)R/VKS8#L"A-RF4+7#G7'\@Q%8=2&:O M= _*WS3:2.:\:5IB>P.LCB0I"$V2&R(95[C,H^]DREP/3G %)X/L("4S?XX@ M]%C@%+\[GGG;N> @9=ZS%GZ ^]F?C+?(HE)S"&X"_@(^,5A MM*LS"I6ZP$E(" 14+B@POUW@'H0(0CZ-UUD3+R$#<7U^5_\6:_>U MG)F%>RU^\]IU!=YC5$/#!N&>]?@ '3'R,2@L;5U0-UFDY MJ_A4)'N;=J[B/DXW&9UIVP0Z$^A"V,J"^ M-U5PQE;$.Y^\]=Y+>9/EY!)T9LAQ@M 5)%T0Q(LO$>A6A"/]0*?;]&PSP2S2 MLW7T_>VVP&Y38!<%=I]5^!&2WB;_Q2"KCDHP;9PEBRH]J#C'*^\RKG?Q"H\]]K,00T+AR_^+.9AFPRG.[G_T.6 M3US^!5!+ P04 " !@0%/-F5DW[0! #2 P &0 'AL+W=O<.3,>YZ.Q3ZX#\.1%2>T*VGG?'QAS50>*NRO3 M@\:;QEC%/9JV9:ZWP.L(4I*EN]T-4UQH6N;1=[)E;@8OA8:3)6Y0BMO7(T@S M%C2A;XY'T78^.%B9][R%K^"_]2>+%EM8:J% .V$TL= 4]"XY'/.>F2,@#7YS?VC[%VK.7, M'=P;^4/4OBOH+24U-'R0_M&,GV"NYYJ2N?@O< &)X4$)YJB,='$EU>"\43,+ M2E'\9=J%COLXW5QG,VP;D,Z = 'E[DU([%3[WL>GC@YI-B; M*CAC*^(=BG?HO93)^R1GET TQQRGF'0=LT0P9%]2I%LICNE?\'0;GFTJS"(\ M^TWA/PCVFP3[2+#_;XE;,=D?2=BJIPIL&Z?)D&PO=V]R:W-H965T552VYRVSG5[QFS9@N+V"CO0_J9& MH[CSIFF8[0SP*H*49,EF<\,4%YH66?0=39%A[Z30<#3$]DIQ\^< $H><;NG% M\22:U@4'*[*.-_ #W,_N:+S%9I9**-!6H"8&ZIS>;?>'-,3'@%\"!KLXDU#) M"?$Y&%^KG&Z"()!0NL# _7:&>Y R$'D9+Q,GG5,&X/)\87^,M?M:3MS"/GGB[3WQORN",K8AW M7KSUWG.Q_9QF[!R(IIC#&),L8^8(YMGG%,E:BD/R#IZLPW>K"G<1OOM/X?4Z M0;I*D$:"],,2UV)NWB1ABYXJ,$V<)DM*['6RN?(CU/H/-AL2:A>.G_S9C&,V&@Z[Z0>Q^1L7?P%02P,$ M% @ 8$!3[SP5 6W 0 T@, !D !X;"]W;W)K&UL;5/;;MLP#/T501]0)4[6I(%MH.DP;, &!!VV/2LV;0O5Q97DN/W[ M4K+CN:U?))'B.3RDJ+0W]LDU )Z\**E=1AOOVP-CKFA <7=C6M!X4QFKN$?3 MULRU%G@904JR9+6Z98H+3?,T^DXV3TWGI=!PLL1U2G'[>@1I^HRNZ=7Q*.K& M!P?+TY;7\!O\G_9DT6(32RD4:">,)A:JC-ZO#\=MB(\!?P7T;G8FH9*S,4_! M^%%F=!4$@83"!P:.VP4>0,I A#*>1TXZI0S ^?G*_BW6CK6KY0,A;_$RX@,3PHP1R%D2ZNI.B<-VID02F*OPR[T''O MAYO=%;8,2$9 ,@'V$<"&1%'Y5^YYGEK3$SOTON7AB=>'!'M3!&=L1;Q#\0Z] MEWQ]MTO9)1"-,<:=POTRP7238 M1H+M.X*[#R5^CL&Y_I"$S7JJP-9QFAPI3*?C),^\T\#>)_%-_H$ IJQLQZ1OG;U!+ P04 M " !@0%/+6KX#K8! #2 P &0 'AL+W=OE+]IM)',>=.T MQ/8&6!U!4A":)%=$,JYPF4??T92Y'IS@"HX&V4%*9OX=0.BQP#O\ZGC@;>>" M@Y1YSUKX#>Y/?S3>(@M+S24HR[5"!IH"W^SVARS$QX"_'$:[.J-0R4GKIV#< MUP5.@B 04+G P/QVAEL0(A!Y&<\S)UY2!N#Z_,K^/=;N:SDQ"[=://+:=06^ MQJB&A@W"/>CQ!\SU7&(T%_\3SB!\>%#BF"L[8BGCGQ5OO M/97D'(CFF,,40U&UL;5-A;]L@$/TKB!]0')*T461;:CI-F[1)4:=MGXE]ME'!YP&.NW\_P([K M=OX"W''OW;OC2 MO*C1:.&^:FMG. M@"@C2"O&D^2>:2%;FJ?1=S9YBKU3LH6S(;;76IB_)U X9'1#;XYG63 M=J*&'^!^=F?C+3:SE%)#:R6VQ$"5T$)U6]9NB:C!TI* MJ$2OW#,.7V"J9T_)5/PWN(+RX4&)SU&@LG$E16\=ZHG%2]'B==QE&_=AO-G? M8.L /@'X##A$ !L31>6?A!-Y:G @9NQ])\(3;X[<]Z8(SMB*>.?%6^^]YCS9 MI^P:B*:8TQC#%S&;.8)Y]CD%7TMQXO_!^3I\NZIP&^';=PKOUPEVJP2[2+![ M1_#PH<2UF,.')&S14PVFCM-D28%]&R=YX9T']I''-WD+'Z?]NS"U;"VYH/,O M&_M?(3KP4I([/T*-_V"SH:!RX?C@SV8&PO=V]R:W-H965TM<_V!,5NVH(6]PAXZ?U.CT<)YTS3,]@9$ M%4E:,9XDGY@6LJ-%%GTG4V0X."4[.!EB!ZV%^7L$A6-.4_KJ>)1-ZX*#%5DO M&O@)[E=_,MYBBTHE-7168D<,U#F]30_'?9.7:G-Y04D$M M!N4>57PJ6KQ,N^SB/DXWUWRF M;1/X3. +X2;&85.@F/F]<*+(#([$3+WO17CB],!];\K@C*V(=SYYZ[V7@B=? M,G8)0C/F.&'X"I,N".;5EQ!\*\21OZ/S;?IN,\-=I._6]#39%MAO"NRCP/[# M$C&UL;5/; M;MP@$/T5Q >$-?:VTZ!^5O&FTD<]XT+;&] 59'D!2$ M[G;?B&182E.5:(0--@6^2PS$+\3'@#X?1KLXH5'+6^CD8#W6!=T$0"*A< M8&!^N\ M"!&(O(R7F1,O*0-P?7YGOX^U^UK.S,*M%G]Y[;H"7V-40\,&X9[T M^ /F>O88S<7_A L('QZ4^!R5%C:NJ!JLTW)F\5(D>YUVKN(^3C?I?H9M ^@, MH O@.N8A4Z*H_(XY5N9&C\A,O>]9>.+D0'UOJN",K8AW7KSUWDM)$YJ32R": M8XY3#%W%)$L$\>Q+"KJ5XDC_@]-M>+JI,(WP])/"=)L@VR3((D'VB2#[4N)6 MS/Y+$K+JJ033QFFRJ-*#BI.\\BX#>T/CFWR$3]/^R$S+E45G[?S+QOXW6COP M4G97?H0Z_\$60T#CPO&[/YMIS";#Z7[^063YQN4_4$L#!!0 ( &! 4\P MOJ&;M0$ -(# 9 >&PO=V]R:W-H965T=6JM1EMG.M.C-FB 2WL'7;0^IL*C1;.FZ9FMC,@R@C2BO'- M9L^TD"W-T^B[F#S%WBG9PL40VVLMS*\S*!PRFM WQY.L&Q<<+$\[4<,W<-^[ MB_$6FUE*J:&U$EMBH,KH?7(Z[T)\#/@A8;"+,PF57!%?@O&YS.@F" (%A0L, MPF\W> "E I&7\7/BI'/* %R>W]@_QMI]+5=AX0'5LRQ=D]$C)254HE?N"8=/ M,-7S@9*I^"]P ^7#@Q*?HT!EXTJ*WCK4$XN7HL7KN,LV[L-XLS],L'4 GP!\ M!AQC'C8FBLH?A1-Y:G @9NQ])\(3)R?N>U,$9VQ%O//BK??>8SABYADCF">?4[!UU*<^3]PO@[?KBK<1OCV#X6'=8+=*L$N$NS^6^):S/&O M)&S14PVFCM-D28%]&R=YX9T']I['-WD/'Z?]JS"U;"VYHO,O&_M?(3KP4C9W M?H0:_\%F0T'EPO'@SV8&PO=V]R:W-H965T.G=2*2VY=::NJ>DU\#($24'99G.@ MDK==E*?!=]%YJFY6M!U<-#$W*;G^?0:AABS:1N^.E[9NK'?0/.UY#=_ ?N\O MVEET9BE;"9UI54"*7QJ^),YHE?>!R_\[^,=3N:KER \]*_&Q+VV11$I$2*GX3]D4- MGV"J9Q^1J?@O< ?AX#X3IU$H8<*7%#=CE9Q87"J2OXUKVX5U&$_V\12&![ I M@,T!2="AHU#(_ .W/$^U&H@>[[[G_HFW)^;NIO#.>L^UC2N^> M:,*<1PQ;8+8S@CKV68)A$F?V3SC#PW=HAKL0OENJ'Q]Q@A@EB -!O-1GFU6) M&.8_1>Y1D3U"P%8B&&:'BQQ0D0-"$*]$,,P>%SFB(D>$X+ 2P3!'7"1!11*$ M(%F)8)CUP]/%?RY!UZ'##2G4K0O39>&=A\@3"WWR%SY.H*]FS]T;"JGZ8:G4=K_@=02P,$% @ M 8$!3ZWO#,FV 0 T@, !D !X;"]W;W)K&UL M=5/MCIP@%'T5P@,LRLRTDXF:[&S3M$F;3+9I]S>C5R4+8@''[=OW@JZU6_L' MN)=SSOW@DHW&/KL6P),7K3J7T];[_L28*UO0PMV9'CJ\J8W5PJ-I&^9Z"Z** M)*T83Y)W3 O9T2*+OHLM,C-X)3NX6.(&K87]=09EQIRF]-7Q*)O6!PC'J2E6]S>J2D@EH, MRC^:\1/,]1PHF8O_ C=0" ^98(S2*!=74@[.&SVK8"I:O$R[[.(^3C>'PTS; M)O"9P!?",<9A4Z"8^0?A19%9,Q([];X7X8G3$\?>E,$96Q'O,'F'WEO!=TG& M;D%HQIPG#%]AT@7!4'T)P;="G/D_=+Y-WVUFN(OTW3KZ\3\"^TV!?138_U5B M^J;$+&PO=V]R:W-H965T--[6Q2G@T;<-<;T%4D:0D MX[O='5.BT[3(HN]LB\P,7G8:SI:X02EA?YU FC&G>_KF>.Z:U@<'*[)>-/ 5 M_+?^;-%BBTK5*="N,YI8J'-ZOS^>TH"/@.\=C&YU)J&2BS$OP?A4Y707$@() MI0\* KX@D1XR 1CE$:ZN))R<-ZH60534>)UVCL=]W&ZN4MFVC:! MSP2^$ XQ#IL"Q,!4=C&UL=51M MCYP@$/XKA!]PN.AZVXV:W%[3M$F;;*YI^YG5\24'8@'7Z[\OH&>]/?I%F.&9 MYYD9&;))JF?= ACT(GBO<]P:,QP)T64+@ND[.4!O3VJI!#/65 W1@P)6^2#! M"8VBE C6];C(O.^LBDR.AG<]G!72HQ!,_3D!EU..=_C5\=0UK7$.4F0#:^ [ MF!_#65F+K"Q5)Z#7G>R1@CK'#[OC*75X#_C9P:0W>^0JN4CY[(PO58XCEQ!P M*(UC8':YPB-P[HAL&K\73KQ*NL#M_I7]DZ_=UG)A&AXE_]55ILWQ :,*:C9R M\R2GS[#4L\=H*?XK7(%;N,O$:I22:_]%Y:B-% N+346PEWGM>K].\TF:+&'A M +H$T#7@X'7(+.0S_\@,*S(E)Z3FW@_,_>+=D=K>E,[I6^'/;/+:>J\%C=., M7!W1@CG-&+K![%8$L>RK! U)G.B[?Y_8;4TW7:W21QMY1?Y-J*0W85*([6W!KGXK5X% ;M[VW M>S4/S&P8.2QO 5D?I.(O4$L#!!0 ( &! 4\V58_ZN0$ -(# 9 M>&PO=V]R:W-H965TI5"VP)US M_8$06W4@F;W2/2A_TV@CF?.F:8GM#; ZDJ0@-$F^$,FXPF4>?2=3YGIP@BLX M&60'*9GY>P2AQP*G^,WQP-O.!0/4E!-T*<:2? MZ'2;OMO, M5)SDE7<9V-OXB.0=/DW[+V9:KBPZ:^=?-O:_T=J!3R6Y\B/4^0^V& (:%XY? M_=E,8S893O?S#R++-R[_ 5!+ P04 " !@0%/MV6O2]4! "*]S MW!HS' G190N"Z3LY0&]/:JD$,]94#=&# E;Y(,$)C:*4"-;UN,B\[ZR*3(Z& M=SV<%=*C$$S].@&74XYC_.YX[IK6. /'^'A*'=X#7CJ8]&:/7"47*5^=\;G*<>02 @ZE<0S,+E=X LX=D4WCY\*) M5TD7N-V_LW_TM=M:+DS#D^0_NLJT.3Y@5$'-1FZ>Y?0)EGH2C);BO\ 5N(6[ M3*Q&*;GV7U2.VDBQL-A4!'N;UZ[WZS2?W"=+6#B +@%T#3AX'3(+^+]38DAS"$LD@1%D@#!PXU( M )-$89$T*)(&".(;D1#F]KK(ICL$J,;/A4:E''L_DQOO.GJ/U'?7'_@\MU^9 M:KI>HXLTMD=])]52&K"I1'>VX-8^%:O!H39N:UL;J7E@9L/(87D+R/H@%;\! M4$L#!!0 ( &! 4]JVZE\M@$ -(# 9 >&PO=V]R:W-H965T[EG',_N*0#FA?; #CRIE5K,]HXUQT8LT4#6M@;[*#U-Q4: M+9PW3Y.QEML5BFEAM9*;(F!*J/WV\,Q"?@(>)(PV,69A$K. MB"_!^%YF=!,2 @6%"PK";Q=X *6"D$_C==*D<\A 7)ZOZE]C[;Z6L[#P@.I9 MEJ[)Z!TE)52B5^X1AV\PU;.G9"K^!UQ >7C(Q,N.]-$9RQ%?'. M)V^]]Y+S_2YEER T88XCAB\PVQG!O/H<@J^%./+_Z'R=OEO-H\1]L-A14+AP_^;,9QVPT'';3#V+S-\[_ E!+ M P04 " !@0%/YA6-)K_=N^-(>F-?70W@R9M6C4MI[7U[8,SE-6CAKDP+#=Z4QFKA MT;05KL^'+F4,@#GYP_VAU@[UG(6#NZ,^BT+ M7Z=T3TD!I>B4?S']=QCKV5$R%O\$%U 8'I1@CMPH%U>2=\X;/;*@%"W>AETV M<>^'F]UNA"T#^ C@$V ?\[ A451^+[S($FMZ8H?>MR(\\?K L3=Y<,96Q#L4 M[]![R?CN.F&70#3&'(<8/HM93Q$,V:<4?"G%D?\'Y\OPS:+"381O/BF\62;8 M+A)L(\'V$\'^2XE+,=^^)&&SGFJP59PF1W+3-7&29]YI8&]Y?)-_X<.T/PM; MR<:1L_'XLK'_I3$>4,KJ"D>HQ@\V&0I*'XXW>+;#F V&-^WX@]CTC;._4$L# M!!0 ( &! 4_TBJ)ZP $ #<$ 9 >&PO=V]R:W-H965T 9=L5/K-M 6O4O1F1RWUO9[0DS9@F3F1O70N2^UTI)9 M%^J&F%X#JT*1%(0FR2V1C'>XR$+NJ(M,#5;P#HX:F4%*IC\.(-28XPV^)%YY MTUJ?($76LP:^@_W1'[6+R,)2<0F=X:I#&NH%Z?V%_#KV[7D[,P*,2OWAE MVQS?8U1!S09A7]7X!>9^4HSFYK_!&82#>R=.HU3"A%]4#L8J.;,X*Y*]3ROO MPCK._)>R> &="^A5 9F$@O,G9EF1:34B/9U]S_P5;_;4G4WID^$HPC=GWKCL MN:"W24;.GFC&'"8,76$V"X(X]D6"QB0.])]R&B_?1AUN0_GVD\/_Z.^B!+M ML/M$0*]:C&&V<9$T*I)&"'97(C%,>B5"5A4 M+/\5Q1]02P,$% @ 8$!3P-22SBW 0 T@, !D !X;"]W;W)K&UL;5/;;MP@$/T5Q <$F]UL5BO;4C95U4JMM$K5]IFU MQQ>%BPMXG?Y]!^RX;NH78(9SSEP8LM'8%]<">/*JI'8Y;;WO3XRYL@4EW)WI M0>--;:P2'DW;,-=;$%4D*M' -_#?^XM%BRTJ5:= N\YH8J'.Z6-Z.N\#/@)^=#"Z MU9F$2J[&O 3CZ;B/T\T]GVG;!#X3^$(XQCAL"A0S_R"\*#)K1F*GWOROXX9"Q6Q":,><)PU>8=$$P5%]"\*T09_X?G6_3=YL9[B)] MMZ:GR;; ?E-@'P7V_Y3X\*[$+<$SPSEG+AYG(YI7VP(X\J959W/:.M6U0JJ:&S$CMBH,[I8WH\[0,^ EXDC'9E MD]#)!?$U.%^KG":A(%!0NJ @_'&%)U J"/DR?L^:=$D9B&O[IOXY]NY[N0@+ M3ZA^R)M.F47SW'6O]&V"7PF\(7 'V(O4Z)8^2?A1)$9'(F99M^+<,7ID?O9E"$8 M1Q'_^>*MCUX+?O\Q8]<@-&-.$X:O,.F"8%Y]2<&W4ISX?W2^3=]M5KB+]-V: MGAZV!?:; OLHL%\+'))W+6YAWC?)5C/58)JX39:4.'1QDU?196$?>;R3?_!I MV[\+T\C.D@LZ?[-Q_C6B U]*ZO*NEWX1Z5.LR!HMT=1Y>U$ MGD2MW^QE4^5*3YM#T)X:D>\LJ2H#1D@25'E1^\NY77MNEG-Y5F51B^?&:\]5 ME3=_5Z*4UX5/_?>%[\7AJ,Q"L)R?\H/X(=3/TW.C9\&@LBLJ4;>%K+U&[!?^ M$YUEU!(LXEO=?Q464 M&FXBT7ML9=G:7V][;I6L>A4=2I6_=<^BML]KK_].PPFL)["!H/=^1 A[0OA! MB!X2HIX0?1"2AX2X)\1@AZ#S;@]SDZM\.6_DU6NZ^W#*S;6CLUBG:VL6;7;L M.WV>K5Z]+!EG\^!BA'K,JL.P$882@(AC 8%L:*.700Q-I%4$)! M$/]5R1ZKW 0:HN<56H'PYKQ"7"!"!2(K$(TC2($-!#+%MXC1+6*73V.0TPZ3 M6$QM,9P1#L[^$M17XOAB/ *^.DP\#B8E M? J,(2B>P#/:8*@I!S<_PU IN6.,H\8X8@PFC#O;)"DPOW8QG(%_P,;%I 0< M3X9@X@0WE**&4L10 @RE2*9X$@)+&"H,P>7:H%HPZQF&2N(4-S9%C4T18R"8 M58?AHVW(A 'W:PP4P@^!"Z(3 I0R#$3O?-,HP8L 06R!8%8]"/@"UW2-HIQ\ M(2CM#.0^PU%W\D7OU#>*6)M":]2]&6Z%KPAR]%!IVEKBC4MQ^;$":H:0I/2=>Q*'S(<&JHN<'^ 7^ M=[^S&+%9I1$*M!-&$PMM2;^FZVT>\!'P1\#@+O8D5+(WYC4$3TU)DV ()-0^ M*'!<3K %*8,0VGB;-.E\92!>[L_JWV/M6,N>.]@:^5'""=]1&NO@E]=%YHR85M*+X^[@*'==ATC_3[A.RB9#- MA/3AOX1\(N0W!#8ZBZ5^XYY7A34#L>//ZGF8B72=8S/KD(R]BV=8K&PO=V]R:W-H965T0/ MP.&2A$2 M,FJVI5:*>IJN\\.' *JC:GMA/;O:QL748+V)?8YGAG/8#MIS\6K MK &4]\YH*S-4*]7M,99%#8Q(GW?0ZI6*"T:4+L4%RTX *2V)41RN5AO,2-.B M/+6]D\A3?E6T:>$D/'EEC(B/ U#>9RA 7XWGYE(KT\!YVI$+_ 'UMSL)7>%1 MI6P8M++AK2>@RM"/8'^,#=X"7AKHY63NF21GSE]-\;O,T,H8 @J%,@I$#S;76=;( M<^$?X094PXT3O4?!J;2_7G&5BC.GHJTP\CZ,36O'?EC9;AQMF1 Z0C@2@OB_ MA,@1HAD!#\YLU)]$D3P5O/?$<%@=,7[>\C")4GPS M0@YS&##A%/,=<;Q'K),1@K6!T46XZ"*T_&C"#Y)P62!:%(BL0/PM1CR+,6 2 MBVDM)H[]]2S)/6@=^;ME*_&BE7C!RFR70WRWRV;G;V=6[D&[[00T6,&3@S8/ M[XF(2]-*[\R5OC/V9"O.%6C!E:]O&ULE5;M;MHP%'V5* _0^"N)08!4H-,F;5+5:=MO%PQ$3>+, M-M"]_6PGI,%Q._:'V)=SC^\Y<>P[.POYH@Z2G.\QC&E\!3L3]H&T@6LX;M^7>N?S2/TLR2GF5;5+Q6A:@CR7?S^!Y. M'R"V"0[QL^!G-1A'5LJS$"]V\F4[CX&MB)=\HRT%,X\37_&RM$RFCM\=:=RO M:1.'XPO[)R?>B'EFBJ]$^:O8ZL,\IG&TY3MV+/63.'_FG: TCCKU7_F)EP9N M*S%K;$2IW&^T.2HMJH[%E%*QU_99U.YY[O@O:>$$U"6@/L&L_5$"[A+P6P+Y M,(%T">36%=(N(?562%KMSLPUTVPQD^(O:V*![.^X_XZL IDAZ@=48 0'TBO@G MR\/'+%>%XJ!?V!'@*[_R, $)$A!'0*X(J&=XB\DM K <0(3]HV4,@VE.,O_;#N'P)(?O. 3?.1!AP.1WC@@8/,SN M(?H/F\/'#,2WV(Q'GVR**,A]F\9LI)CX-H]Q-!WK2P8W4,7E MWK4#*MJ(8ZVM-X-HWW+<(WN#>?$EG*Y@(+ZV+8J[\=[HV_[F&Y/[HE;1L]#F MWG2WVTX(S4WUX,YLCX-IJ?I)R7?:#G,SEFU?T4ZT:+J>*>D;M\5?4$L#!!0 M ( &! 4]U?H1(4@( $L' 9 >&PO=V]R:W-H965T+:ED* H"@DI:5/XJM;%GL4KY1;&B@F?AR4M94O%W#8PW2S_TWP,O MQ3E7)H!6:4W/\ /4S_I9Z!7J58Y%"94L>.4)."W]IW"Q)P9O ;\*:.1@[IE* M#IR_FL77X](/C"%@D"FC0/5PA0TP9H2TC3^=IM^G-,3A_%U];VO7M1RHA UG MOXNCRI?^W/>.<*(7IEYX\P6Z>K#O=<5_@RLP#3=.=(Z,,VE_O>PB%2\[%6VE MI&_M6%1V;-HOL[BCN0E11XAZ@L[]&2'N"/$'(?F4D'2$Y-X,N"/@>S.0CD!& M!-1NEMW]+55TE0K>>**]/S4UUS1<$'V^F0G:X[3?] %(';VNHL@;2#WD;DLK&.)O21B\![:<@/,/C0T"#/W8)XFS;LO0R?JF4N72#:-_YGR+3&$;Q=;C8A([X M-ESLVL;^(=\^,]^I.!>5] Y_"@-SO7+UN_8'!29CK3<]'V M]W:A>-T]7:A_/U?_ %!+ P04 " !@0%/UA:,:RX" ";!@ &0 'AL M+W=O(NE&O(+$#TG^&2"6@I@%*6@Q4T7EH69._"R8%=) MFXX<>""N;8OYWQVA;-B&:O4>HW6'D- M5L9@=4>0.X?ETZR=3!YK[D 2+TBR,$#NC>RL)C6:SF:[3EV2I0BMT0:RP(F/W76\(OIBR*H&+7SI3DV>Q4>9^AJ17_Y;9L?\?\TG0B M.#*I*HZI"V?&)%$HT9.ZFEJ]%-. DK/4W4SUN:V7=B!9/SX%8'J/RG]02P,$ M% @ 8$!3S.X:3@! @ 6P4 !D !X;"]W;W)K&UL?53M;ILP%'T5Q /4!!+((D!JJ*I-VJ2HT[K?#EP^5!LSVX3N[6<; M0@GQ^@?;EW/./=*6E%XM92=@>$1%X#Q>*!=="J/R7C%$NU MY!42'0=<&!(ER/>\$%'F MJJ4.H#3N< 4_0?[J3ERMT*Q2-!1:T;#6X5 F[N/FD(4:;P"O#0QB,7=T)6?& MWO3B6Y&XGC8$!'*I%; :+I !(5I(V?@S:;IS2DUL44.*>R!BDHJQ0_#Z. M36O&8?P376EV@C\1_)F@V?^J6J%BE[2P-O%Z**%)LQQQ/@+S,;S;C&9!3,CD'(PV_!M-H[^ M'=U?)?@,<9,@L-89&'JP]+]!VO__/>816*Z'%2K2R$MYE65^*>\3.C\)H900M[BH% M7IEG+9R<]:UI*8OHW#D>?7/7/^!CV_F!>=6TPCDSJ5Z,N=]![4JM M.MV\(%!*/8W4G(_O?5Q(UDVM#,W]-/T'4$L#!!0 ( &! 4]VR![==@( M 'T( 9 >&PO=V]R:W-H965TN[?4Z/1HSW&:9WAY%Q_6-'$1OG^REZKBQ0W7(]* $WWE1UV8$ MH2+K>-.GFY6?>U2;E3R9MNG%HTKTJ>NX^GTG6GE9ISA]FWAJ#D?C)K+-:N ' M\4V8[\.CLJ/LFF77=*+7C>P3)?;K] .^?<#4"7S$CT9<].P^<:4\2_GB!I]W MZQ0Y1Z(56^-2<'LYBWO1MBZ3]?%K2II>F4XXOW_+_M$7;XMYYEKIGRO\E@ 9D$Y"K ^3\%=!+0_Q7DDR /!-E8BE^;!V[X9J7D)5'CWSMP M]Q;AV]RN_M9-^L7VS^SR:#M[WE!4K;*S2S3%W(TQ9!9#WD?]C'N(8 M]A>469-7IP1T2KR>SO2X*N $%$Q ?8)\;A*CH-0QIO Q_1B34P93>$MK$%,#F"+ U'$Q!:8+&(S@?8L 4!EN7!21 M,&'Y$FFA0V" %+4(')$*RFH4]@D<[:^BI&CA=<%P(\ $,%2'ADADB#%"PIY$ M(C]+7N">@H&F0L*F@N.N8K=(485FXK#03#9KZ^Y@_LK5H>EU\BR-/2%\']]+ M:81-AVYL[4?[+7 =M&)OW&UI[]5X((X#(X?IL,^N7QR;/U!+ P04 " ! M@0%/3>%D"> ! #8! &0 'AL+W=O,:QG?16T:*O[L@?$^13ZZ-U[K2Z5, V=) M1R_P ]3/[B1TA4>5HFZ@E35O/0%EBC[YNV-D\!;P5D,O)W//)#ES_FZ*KT6* MB#$$#')E%*@>;G QHR0MO';::)Q24.5,)1PX^U47JDI1C+P" M2GIEZI7W7\#EV2#/A?\&-V :;ISH-7+.I/WU\JM4O'$JVDI#/X:Q;NW8._T[ M;9T0.$(P$OSHGX30$<+_)42.$,T(>(AB]^9(%1WOW< M-.UFVV]Z>Z3NWK(P\!-\,T(.LQ\PP003/"(.2T1(7AXQQR5F$X\0K$V.3H-5 MIX'EAQ.^'V_7!<)5@= *1 ]19T'V V9K,>U@DA RC[N""F)"9H&7*+)N-UJU M&RWM^O',;K188AMN7F9&#BNHYY#,S>#)D3%W_CL5E[J5WIDK??KL&2DY5Z 5 MR9.^2)5^9L:"0:G,]%G/Q7#9AD+QSKTC>'S,LK]02P,$% @ 8$!3X*( MG'GH 0 [P0 !D !X;"]W;W)K&UL?53MCIP@ M%'T5PP,LBA^=F:A)=S:;-FF3R39M?S-Z'<%JD$!K1^(,DS#, M,*==C\K<]4ZRS,55LZZ'DPS4E7,J_SX"$V.!(O3>>.DNK;8-7.8#O< /T#^' MDS057E3JCD.O.M$'$IH"?8X.Q]3B'>!7!Z-:S0.;Y"S$JRV^U@4*K2%@4&FK M0,UP@R,P9H6,C3^S)EJVM,3U_%W]V64W60-=[N-&0\LB[(D\MM) MO7;2.SO9]ONF=YFC/0FC<./& \N2+(XW;O#JZ-FKX#N5EZY7P5EHCV9K;9RD8--I./YFYG/[!J=!BF*\7O-QQY3]02P,$% @ 8$! M3];@J\PW @ G08 !D !X;"]W;W)K&ULC579 MCILP%/T5Q >,V;.(($TVM5(KC:9J^^R0FX#&QM1VPO3O:QN'(8"F><'VY9QS MS_6:-HR_B0) .N^45&+E%E+62X1$7@#%XHG54*D_)\8IEFK(STC4'/#1D"A! M@>S1!;0OQHAL02D@$!M9-E9G^+)8H(?Q/>\>LYW = BD M''0V@BD;ZV!$#^X3;,8(W_,')OZKLGM 93_&Q//I6L+)*0T-/[R;TMFT0#0I M$!F!J">0+ 9+TD(2 ZG:.@(O#N>#"7D,MI^ ^?/Y(IDV'4^:CD>FPV"09QV/ M\H31<"=MQJ!H,=IN8U R&X)V8Y#:MSU46Q7J'14*_&PN.N'D[%))O8R]:'>7 M/@?ZJ WB:W^Y\2?B6W^Y:Z_*#_GVXOZ.^;FLA'-@4AUPF.U LMH^!JA[D;)_4$L#!!0 ( &! 4]<*EN,$@0 M ),5 9 >&PO=V]R:W-H965T9??LUEZ:)?=RZ?YK@?.?X^,)7 M\/PBVY_=00@5_*JKIEN$!Z5.LRCJ-@=1E]TW>1*-_F4GV[I4^K+=1]VI%>5V M"*JK".*8175Y;,+E?&A[;I=S>5;5L1'/;="=Z[IL_UN)2EX6(0G?&KX?]P?5 M-T3+^:G_4]+PVF/O]+3L?!J\' M\U)V8BVK?XY;=5B$>1ALQ:X\5^J[O/PFI@&E83"-_@_Q*BJ-]Y7H/C:RZH:_ MP>;<*5E/670I=?EK_#PVP^=ERO\6A@? % #7 -WW1P%T"J#O V!30',"(C&R1IF_[%4Y7+>RDO0CAOH5/;[E,R87M]-WS@LY_"; M7H!.M[XN*13SZ+5/-#&KD8$;AL3Q/?.(,%B4TB&>WDXIC?$$"9H@&1(DMT7FQD@1I,"[2-$N4BN> M4F,>5B/#!J89F QBEAB5>%$LG=BQ$@8ZJ0!8BP1.0&/=D[']7$X=JB<=--T%W M:Y@CNO7".(:QPC5W!'7S P&/.V^"[GJBM##WL1_&,8RP.'/4C7N84(_;;X+N M;O,L-B7G17&$2J%PW'X$=S^QS4YIZDB!NYVD7]BJN&L))EMKJ]J&1#:J!\0_ M@>XKQE5+,-=:FQ31J%VQ!\0_@>XKQDU+$-7:V],VI%7OIPC_$+FO%?81 FAJSYH=Q'"M-\"W*3@8U*P'9@D M8&U5'XHC5%[$+BG@2@5,J:[W3%RI] M*I;A2J8]2*?84:>R+1Q^(HY#C 8GB M,J4^,J6( %.K8@^(8Q!QS;'C/,#'I!/$'/U,%7M '(.L-^WHYGRH%NU^.-WK M@HT\-ZK?43>MUQ/$!^C/EXSV%9FM"=+^2&9/X_G@>_KQN/+/LMT?FRYXD4K) M>CA[VDFIA*X]_J;G^2#*[?6B$CO5?\WT]W8\)APOE#Q-1Z#1]1QV^3]02P,$ M% @ 8$!3S7_7)G\ 0 &P4 !D !X;"]W;W)K&UL?53;CILP$/T5Q'O7W,M&@+1)5;52*T5;M7UV8+AH;4QM$[9_7]L0 MEA*W+]@SG'-FCF_9Q/B+: &D\TI)+W*WE7(X("3*%B@6#VR 7OVI&:=8JI W M2 P<<&5(E*# \Q)$<=>[169R9UYD;)2DZ^','3%2BOGO(Q VY:[OWA+/7=-* MG4!%-N &OH'\/IRYBM"J4G44>M&QWN%0Y^Z3?S@E&F\ /SJ8Q&;N:"<7QEYT M\+G*74\W! 1*J16P&JYP D*TD&KCUZ+IKB4U<3N_J7\TWI67"Q9P8N1G5\DV M=U/7J:#&(Y'/;/H$BY_8=1;S7^ *1,%U)ZI&R8@P7Z<&.NI7!* M-O;F2=ADUYO_%)BS^@:?GXVOF#==+YP+D^K$FW-9,R9!]>(]*+.M>JG6@$ M M]?2]FO/YOLZ!9,/R%*'U/2S^ %!+ P04 " !@0%/OEVR1>," " # M&0 'AL+W=O61[_I/+ M7\>G3K6B*\XW4*9BZG/DCKVN=2P.?52-&,6-96&O0_7 MJC77RYC_8Q@] ,?2U(2D%0%A:E<"FQKY8%25D0E-*B+!Q*EA>>6DJ24CH40'M? M2K>619YXMA]B6KB8>,IB3PJ/LW"[3T ;"7B#46/0]:K.E+@&T>8"H:[#2=QU MA=2W)K2[0,CK> 6NOO\!T?X");"M%K@&E^!;.-I@H!2VY0+78?360SL,E,2V M7N!:G/LPM,3@6NSZ!:[&)20^$.TQN"(G&7C>5K2B&-_N%]**(MS@UQ@T+S?U MOE@];U;"8P?C:@PQ>'ZUD-88J3>PO7WH>ER4GI]ZI#5&2F/;+G0U]G-HBY&R MV+8+78O]'-IBI"RV[4+7XBP'WX- :XRNQJY?8]#\C%1FL?TD1+.SHSZ;_V#= MOFK[X%5(=0PUA\6=$)*KC/&=FO1!_1V8&C7?27U;J/MN.!,/#2F.XWD_FOYT MK/\!4$L#!!0 ( &! 4^.:3G$DP( L) 9 >&PO=V]R:W-H965T M,!2;JW']BNY<+Q;FR#_W/.]V,,K&]*OYJSE#9Y:^K6;-*SM=U]EIG]63;" MW*E.MN[-4>E&6-?4I\QT6HI#']34&*I.9^L[LNVZ$R?Y4]I?W:-VK6S**YDCTZ\E1>E7GWCVV&3YIY(UG)O?0KA;E>YDW7M,SF./V/2 M=*KI ^?/[]F_].:=F1=AY$[5OZN#/6_259HC^N[S* MVLD]B:NQ5[7IK\G^8JQJQBP.I1%OP[UJ^_MM>$/Q& 8'X#$ 3P&H^&\ &0-( M$) -9+W5S\**[5JK6Z*'K]4)/RG0/7&#N?>=_=CU[YQ;XWJO6T+Q.KOZ1*/F M8=#@F290[&(%74V2S %,%!BDP'T\F<4C3N$$!$Q ^@3%!QLDL#%H6*]I!QLY MS@,GD&@V(!]0"A"EB+P06L )*)B EYHX&70T!DFPKA @1E E5.T\&48",, M&!; L+@,XF4XLJ"*+8Q,"<*4 $P9P)11&<91$;#$(NS&C\$L*Y!E%;,@'K"L MHC*4XO#?B44YS,%!#@Z,R2K@X%$)3HO@]]C%(DK*A9F/5@>\J!X,M"B#'EB%>)D8<8@>)5#&,!!(0Z."I4\ M^K,!%7.R!1QXS43QHEF&ZPR*UT-&&.8A3BPK$9Y]^H$GF^U*_ICP0^A3U9KD M15FWP?7;T%$I*UW*_,YY.[N3R=2HY='ZQ](]ZV%['AI6=>/1(YO./]M_4$L# M!!0 ( &! 4]GU8/$D@0 (47 9 >&PO=V]R:W-H965T93IR+!D(&Z,[L MWZ\A=)K8QSWD)0%SJEQU;!_;-3[GQ8]RKU0U^)6EQW(RW%?5:>1YY7JOLJ3\ MDI_447_9YD665/JUV'GEJ5#)IC'*4H_[?NAER>$XG(Z;MN=B.LY?J_1P5,_% MH'S-LJ3X[TFE^7DR9,/WAJ^'W;ZJ&[SI^)3LU#=5_7-Z+O2;=_6R.63J6![R MXZ!0V\GPD8U60M0&#>+?@SJ7G>=!G)_.2E&J6I]\/FVH_&4;#P49MD]>T^IJ? M_U!M0L%PT&;_EWI3J8;7D>@^UGE:-K^#]6M9Y5GK18>2);\N_X=C\W]N_;^; M80/>&O"^!M0:T-5 !_N9@6@-Q(>!^-0@: V"#X/P4X.P-0C[]B!; VD8>!=V MF^&:)U4R'1?Y>5!<9MPIJ26^VHQ-X?]@@D;S+'-PV?2'!@ XR$Q M:41LPT0L(R)C@ !,$$4!3BZ$R84@N1.3;FML+M@*P(/2= M[&%18P3B#ATNL*PQ<0=[6+:8K5L42I.]P,XW-@6T#V@%0"[6L!(Q6XHH=&PF M#*]W)N]@#:]X%H$HXMM42=:FG MKX, K%@,2)9TG4^P>G"__S!PK!Z<@2C,3;<%W:2KMQQC^YH#&).^N>18\3A0/.G8M3@6(1[>P2P6(0Y.'3:STJ8MB$UNI;67/S!&)KFV M*\Z$22]PQ:7C&,RQ-'*D>JX1PN+"X_[T$A87 D<3:6YK+JHTJ#3AB&U3P@4F>/G=8IUF2IV36VV'*SS MUV-5#WVG]5K_?>)UL<]HG['1G('V!1LM4?NCH-%2)V]_T8'K+Y>"XD=(EP+U MWTFQ.QS+P4M>57G6% ^W>5XIG:__14_4O4HVUY=4;:OZ4>KGXE(8OKQ4^:DM M>GO7ROOT?U!+ P04 " !@0%/V4RE1Q0# #\"P &0 'AL+W=OP;/.256W. M*Z=ANYG[@"=K'*D C?B5LW,[>G>4E&?.7]3BZW;F(E41*]A&*(I,/DXL946A MF&0=?WI2=\BI L?O;^QK+5Z*>9Y9V?YF);#YM^-EIN@M4 M9^J>XDDHO^]&;>K/J<_D!VCE[FE.8W_JG111CTD[#!EA,$*7F!6 &1">K& H M@T!EI,0*)Y<)EC8"(VP4\2'+^C;+1:$4](MJ CI.$40P@0\2^)K 'U<0&S( M2 *G", 4@1V/#"/2#A-J3-7I"!&.3-IR6R)EZ=P3\% 4S$K74"@F!I5>*.AHF3-7H^$K;/AQTJHRS':'<;. M!5%#B;&?XLD2 _LK-:8"^P\XG*RZ><@XD87+$SW9>N\E=7/Q]ZS9YU7K/',A MQR<]Y.PX%TSJ1??2]H,GFT6XA>-W/VMXP\,__ 5!+ P04 M " !@0%/CWZXME$$ "K%@ &0 'AL+W=OG*4LK9]IDA5+^UR6U[GC%/NS3./BB[K* M3/<<59[&I;[,3TYQS65\J >EB<-=-W#2^)+9JT7=]I:O%NI6)I=,ON56<4O3 M./]O+1-U7]K,_FSX=CF=RZK!62VN\4G^)40Z75&;%1656+H]+ M^X7-=R*L!M2*?R[R7G1^6]54WI7Z7EW\?EC:;N5()G)?5B%B_?4A-S))JDC: MQX\VJ/W(60WL_OZ,OJLGKR?S'A=RHY)_+X?RO+0CVSK(8WQ+RF_J_E6V$_)M MJYW]'_)#)EI>.=$Y]BHIZD]K?RM*E;91M)4T_ME\7[+Z^][&_QR&!_!V )\Z M0+0#Q&. -CLVP&L'>(\!WJC>;_7^KP3C X)V0-!/X#2EJFO_&I?Q:I&KNY4W MR^<:5ZN4S0/][^ZKQOK/K/MT^0O=^K$2T6SA?%2!6LVFT?".AKGN0^/H^(\D M'"79@[?,"'#WWXP(=1K#70A(:33:/QNTX\ET6&7ZH2KBM\;#B A@-@6!AF I+F MM^&ZA#!-"-)X.$ $ T335\@,!I@!![Y1SQFM9R@&LC 7WY NR!.8=Z1+$AD+ MX!7%,5?)=C1.W^T /AAP&YI9V.0LD!\OC(.YA&9-^+.:;$\^]C$GZ1C"R&&(6,4)10XR,2?I&,(H899$W1!F& M,@Z*-1!I/)L%B287!".+(68%IA4J(E8VC)*-ZY7OF= !"2ET M0*Q9X X\=3C&)$>8-)"P!B):93Z9@1PSD ,&$CIQRD"?"?/Y 51A:/QA.Y"O M.ZN^90Q4#H!JRX?"(%1S(/I'.48Q1QM M^4R. I'GDIJ$D^]PC'2.D&YR%(B(E0T?0WK#4)2,,'0T3G]*^-' T:.!\!,] M&DAU ;3))F[%TY?QYY(=2#7LU@1\OQ>C M5$QX5U\#D><.O-P*S%N!MK[,S(-$ ]LN@:$L)O!V#46!DWK*Q>P3NMCQ/,-:].N(SV#9N_,M"^9?,=:M_P^2N*L^7S'6I_$=Y\*SS0 MH_\XW>/#GD#W!+ GU#WU0:SS:]K-,>Z?<7ZZ9(7UKLI2I?6IW%&I4NJ:NE_T M&CG+^/"X2.2QK'Z&^G?>')\V%Z6ZMD?#SN-\>O4_4$L#!!0 ( &! 4_X MGA$2-0( )$& 9 >&PO=V]R:W-H965T&(8$:Y0\!"_GG'ON MQ5QG'>.OH@20WEM-&['R2RG;)4*B**$FXHFUT*B=$^,UD6K*STBT',C1D&J* M0HQ35).J\?/,K.UYGK&+I%4#>^Z)2UT3_F\-E'4K/_#?%UZJ/QN_H7D[O*Y4 $;!C]4QUEN?+GOG>$ M$[E0^<*ZK]#GD_A>G_QWN )5<.U$Q2@8%>;?*RY"LKI7459J\F:?56.>G=U) MPI[F)H0](1P(*O9GA*@G1(\2XIX0?Q#23PE)3TCN(B";NRGFEDB29YQU'K?' MH27ZU 7+1+VN0B^:MV/V5#V%6KWF,9YEZ*J%>LS:8L(1)L#X%K-Q8&X1VRDB MQO,!@Y3+P6KHLKH.'3;N@FP>P&RGF&1^"]E-(3%>N+U&SK)&1B :"80X=0O$ M3H'8",1C!\%=S7<6DQI,8Q/!]N>.E#@C)9-(01S>G0"+24:19ND"3PZ! [:8 MPK8NV'RVB-VN4Z?KU.$ZNG.=3NH3S_$,3WU/@9-"6N&UL;5/;;MLP#/T501]0Q7+7 M=(%M8&E1;, &!!W6/2LV'0O5Q9.4N/O[49)KN$->S(L.#P\IN9JL>_4#0"!O M6AE?TR&$<<>8;P?0PM_8$0R>]-9I$3!T)^9'!Z)+15HQOMG<,2VDH4V5<@?7 M5/8J9!:5H\9:M-,E.^61[/Y==+^!S 5\*>)XE-TK*'T40 M3>7L1%S>_2CB%1<[CKMI8S*M(IVA>(_92W-;%!6[1*(9L\\8OL+PS]L%PY!_ M:<*O-N&)H/S0A%\G**\2E(G@]@-!^9_*C+E+&)-5KC"Y"5NM);ZZ'\*=I/'D M: -N..VAMS8 \FUN\"H'?.A+H* /T=VB[_)UYR#8<7[);/F=FG]02P,$% M @ 8$!3_D',UQW @ '@@ !D !X;"]W;W)K&ULC5;;CILP$/T5Q'O78&Y)1) V"54KM=)J5VV?'>($M("I[23;OZ\OA 5C M9?F;MG:+3GO5@"PHL0-8@^DPZUXMFJ;(]T2PE9UY7+7ZB#CLW#:+_-K@FU[7KNS?# M"65:1U*#ZNW4=_E2<2KP"_*WQEH[4C ME>P)>96;[X>UZ\F$<(T++AF0>%SP%M>U)!)I_.TYW2&D=!RO;^Q?E7:A98\8 MWI+Z3W7@Y=I=N,X!']&YYL_D^@WW>B+7Z<7_P!=<"[C,1,0H2,W4KU.<&2=- MSR)2:=";?E:M>EY[_IN;W0'V#G!P$+'O.02]0_#N$-YU"'N'\+,1HMXA,B( MK5T5LE"_TP!1=)U&,V&@-' M&-_SIIB=!3,@@,A@2 /:TMC F3N=S4#@NXT14;!456T09?=C$LRA? M8! :'\C6ADIFLBRH*(!&&7,+*HRCI5U88A666(0M#6&)[>@DIC ;"LZ.X:>X M\H^XM# PNMP:3$]JTC"G(.>6RV]S9!V&V2.4EZ-AW_BKK6^Q[\3PT[/JG5Y/ MSI^(GJJ6.7O"Q96L+LXC(1R+Y+T'T9!2#.MA4^,CE\M$K*D>67K#2==/8S#\ M)>)6R0I.W@R!TQ4(KYWQP( M&U/7=R^&I[9NI#:@+.EQ#3]!_NJ/7)W0HE*V%#K1LL[A4*7NO;][B#3> )Y; M&,5J[^A,3HR]Z,.W,G4]'1 0**16P&HYPQX(T4(JC#^SIKNXU,3U_J+^:')7 MN9RP@#TCO]M2-JG[Q75*J/! Y!,;O\*<3^PZ<_+?X0Q$P74DRD?!B#!?IQB$ M9'164:%0_#JM;6?6<;J)+S0[(9@)P4)0OF\1PID0OA&BFX1H)D0?]1#/A'CC M 4VYFV(>L,19PMGH\*D=>JR[SM_%ZG<5VFC^CKE3]13*>LZBP$O060O-F'S" M!"N,[VTP!PMF02 5P1)&8 LC#][1@VL'^_<(W_,W0?Q7Y>&VRE6@H;5>H1$( MUR[\T"X0604B(Q!=%7R31V[#;.MAPX2;>M@PT:8B-DR\20BMNHD"K\W3%D[! MAD[J8JRLR_2X#W0W;NRYO]O[%OM!39MI.+S)3Z/J!^9UVPGGQ*1Z Z93*\8D MJ-"].]7[C9J.RX% )?7VL]KS:49,!\GZ>?RA909G_P!02P,$% @ 8$! M3_XF66SI @ 1@H !D !X;"]W;W)K&ULC9;M M;MHP%(9O)ECH])TFT.HBZZ!WD4C?YG)]NZ4'K8[I/N MV(IB:YWJ*D$ I$E=E$V\F%G;<[N8R9.JRD8\MU%WJNNB_9N+2E[F,8S?#=_+ M_4$90[*8'8N]^"'4S^-SJT?)&&5;UJ+I2ME$K=C-XR?XN(; .%CB5RDNW>0] M,E)>I'PU@R_;>0Q,1:(2&V5"%/IQ%DM152:2KN//$#0>4%0.DO.)M# MY#V#)@P$X)I9!9B12'0%8QDH5$:./'?$V76*I<\0Y#"K$)-=,^O[<:Z*Q<&> M81L 7P7@X0 D&(#8 &0: +L-[1EJF>9>0VDP!?520$"=>>V9=)J"Z$\, MP$"&.70*]C&4 @B=&5H',,!31L+BTJ"X-"#.7;2IWS^80>:T>1G"&'>WP,K' M$&8,.M@ZA&$&;\P<"XIC 7%.$W/FY<$TI:ZV $4X(HXTGV* 0^XH\ZF49>F- M59\%A64!8<[>S#,O#4T)<(I9^A2A'+H[R*6HC[K@Z<#\*5!I^A\@*X^$!1C M1UJ0<)F3/4 ML>?P<0D#]I6Y)-DS]R-\?\/Z5K3[LNFB%ZGTR6W/UYV42NCBP8.>DH.^U(V# M2NR4>67ZO>UO-OU R>-P:TO&J^/B'U!+ P04 " !@0%/4P[[+R0" !T M!@ &0 'AL+W=OV.FS 0?!7$ YSY M3-((D"[)5:W42M%5U_YVR":@LS&UG7!]^]K&(818:?]@>YF9G;7QDG6,OXL* M0'H?E#0B]RLIVR5"HJR 8O'$6FC4FP/C%$NUY$U[+" -2._ZKVLWLXX!.1KZS[ K:> MU/=L\=_@#$3!M1.5HV1$F*=7GH1DU*HH*Q1_]&/=F+&S^A>:FQ!90C005.Y' MA-@2XBLA>4A(+"&Y$F8/":DEI),,J*_=;.8&2UQDG'4>[S^'%NNO+ERFZKA* M'32G8]ZI_10J>BZ2.,S060M9S*K'1"-,& 2WF(T#,R"0=](^P7DK6VQZ/A1U/\!5!+ P04 M " !@0%/U8-.FJ)" J)0$ % 'AL+W-H87)E9%-T&UL M[7U9;SG5^1P5&/R9@B&ONBMCN"HJ@V;;4DDY(=GHYY* (%LEJ%*G0M MHMAQ?_R<+;=: %!2^_;UZ$$B"61EY7+RK%^>\\>B*-7'39(6?SJZ*\OMTV^_ M+99WT28L>MDV2N&;=99OPA+^S&^_+;9Y%*Z*NR@J-\FWPWY_^NTFC-,C5:7Q M+U5TGE5I^:>C\6AQ]/T?B_C[/Y;?/\^6U29*2Q6F*W61EG'YH"Y3[C/.4G6J MBKLPCXH_?EM^_\=O\1E^;JI^S-+RKH!G5M&J_NU?JK2GAHM #?N#1?/+!+Z< MM7_9,H2?7L9II"[+:%/\WWIS,_RW>9@6,;6_BK997M9;KL.DB#H?_UL5YF64 M)P\=3Y=YU7CX;5PFDI[''[IVS?1VCG_!=KW-[M-ZVV?1"DB[<6+J79@M?Y-G M'^)TV7CGCV?[NGB3%668J/\3;UOII3^8C?H-8J4>@(FT/C*;#^H?O_K3PLEM3[_MV'CZ.;A M*DYOU?7#YB9+ZM]>7CU[V[&X5]%M7)3 :TKU*MPT%BB^>OWL]5MU_OKJS>NK ML[>7KU]U]',.0\]AV)? /3^JOT8-K@$+-AA,%H/IK+%%59[7EZWK )V>#H:G MPWG'(*[OHB2!C=YLP[0Q -UF$T*;9U4!!Z-HK*PTNMA$^2VNYP]Y=E_>[>E2 M3X Y+6T#$'MSV_[9E#J&/0*O#I6-4+\/\-E)G MRV4$K:#-BMMW#=[CYMA2F\J8UN7IU=/S]K M,-'S+"VR)%[1H)Z%20AL #;2.X.TK58(,;F_R0Y:M[N.DR812H*C;&!9&'FP?$RW#KNFW?Z=W.XG#FS@! MO2EJ;KG9HVWX@!O4\CUH1;!J'T$1+9J'U4P^CV 3JXC)IRK*;(-C7GU >MZS M:<[X]FW'CJ;>-NSJDE8SR=+;4R+@'4UYF(]IVMT >4K,YX37"#1KF%>4+J&Q M.GZ5@28P&)S4'D.KX&FQ#9?1GXY [2^B_$-T]+UJ$KB>?,$\:Q* ;!&M7H55 M">G*,:S;FXFW*]HU64#->CWVSO_3@WGP6 XHI> ZC^;SW6CN"@J M>;OSX@"(IMA&Q.*3QN$'%8=4?5C6;1BO3H'I+<-M#,M<;WD5E6#_()&&>0K] MMC&B:E,EQ&(SYBD@O/+H#D@:Q4N2-:4>;R@MPEV6K**\^%__O]G> M@;0V9S(ZJ.G. 3LK32HXGTHP\M DVT3V0T?JZB$XHC?8(XI'^\WG4;]=4%\Q M-VT.O2AQG-L\6U7+4C/=IF&&.M>O; 9"\W ))(>;&M?E30=CEM=T= \*(%A1 M,(9UW)!55\"CPGS):L0*GD\R$K9-E2E)D*UCLTV8OX_*EIWZ(4HC5*"Q4;C: MQ"FIY66+<<;CSHRTZ!)75I[$M-7MPH&_Z]!5B$)N(K#O(FF($J?YJDOSG3J^ M@8G 8IWH<354PZCL&-"SL(B7#5$7)U79=A Z"?OJ#A1 M67Q3\MYW_,Z7K*>]!SH ][,[HY _9T5+V[R>HL+"C+E8Y0OXZ+)!7;UQ',-P"H' M1AHOF6"P^=E]F,/WKY@<7V3Y.HK+"@7>YXWY\!LT;\'#/P? M<7F'YPAGB)]1&R"A^AOWKQ;U%"4KG--Y]B%J]D]CSH5UO]M"IW^'1<1OX)'& M>KZ#210*!'[5E+',J]M9_TODU68?8 SH2LQI#NU'ZI/W1SV'V2S!O"^4,='< M-6M?IZMH6X$:02N,XA_8 FDPK03]65W\O55;97L!5^QBO8;AXRJ]BNZ5V,O4 M 72SC+<)\F5-5]#J;)5MV^:U2SJC#'H!,NC37#[G6H05:IUG&T<-(O=9A^'O M[Q]L40:S@X$V^=C83N9W13=#H57A^[,/G)A#]Y>)/ M:U])6L@=#JPW>;:,HI6,I0@YVL8VLN-<;)W$5O/H&W%=N]1F")(629M C=<+ MBZ!Y[?!E7L/ "K%62E'?]CQB-J@JB!I;%WK?YJSC%+2,/9OCKV&;ZK'#.+EW M9,\V?-B(&S7#W82J*K M["8KX7TFT*Z.C_C#(PR\HK ZDDC6T8E:1068J7S.;ZHX@2.58UL0D7>X,YMM M=@^<;!ME6]:-5ID"D17U0#A'.B*FW1[R;+Q49;2\2[,DN^6%#F$+D7W$)7;! MOIS(\82@;[BHT'_.+_=Z%R]B81SN,;IB8G@R3A[4+7E,\)P2*]!^HH*X5WF7 M9]7M'9(-:WBP /C6'$VN1!KAH4JC!$FQ4/<8.PQQI'C*3A,,G ,#@+WJ-0ES M V-X(+,3UI!@"$!*KKX$.[YL.=XM37;L].'O0?T\)C+WB O7$HF:5A/;+UW% M;&WHKK!T)^'BX=(4U4T1KV+8 M0TPG6)!F 2;Z OXX*#A8PQ MHBDOUF8ETQJY0Y !PE!ZNG=@H+"!T3:DH$9]U)76$P\:/S9"GH!"E3AZ:-=K MJ_780L@G 4*"[Z-MR2P WXUVAM9;:4W/@#YAZ>$X_7!V]N;HI >FA0J%N01J M"6P%['CL'*CL >/7X889R5WX 1UH4>K[6N HR"#Q5WRGC@_1TUMG#^E=V"+; MQJDL\"9,P]N(XWJXV(Y7"10!6.@"J49ZMHM'>Q)O#EA$.^Q-N*+#3U^J=1@C MI*BT1_0/A=/#-F-UI,H.,K M7 FE_%RE1(M,*O[,#JHZ:X"A\4"FE0F)!FS.A' M@QXQK1R?2!X"=YD-CY>^?V'@6L&J0:USDDQK(/G"?0\V@;-5*FPB5AEL?0XR M!F,2I$R%RSO==4^]8\YV 7K=AJ:-:\'LQS QZ*2(#F8QR!=@X4CO+MSIX?@V MX7LP$\W+2"P6(/3$NT63"EGOPR=Y_:.582+(4MN-,MXNDHW\AS:K:'N+^EM_ MKE:W&]:]-)L'R6@.)W+QDKA38"1N;IU'^B'BHU%.1XZ<@C=)?$OK!OU^@+-- MSA0\,V"IY5;M8 S\>)'K[UQ)@H>VZ##3VQ=* M&N)PBD+>QV/V.G5->=E@CN;:\<,!R.Y)HOK'^(:,NW+7SN.1 JX(>@V&5(E> M0)*3,:-T]'C>@.P"IL81 ^R1+B7S8LTR2,M;*>QI>T7PO,IFL*DEPH>Q<10C2B'FM M["Z)U0[+6.6&$KS.2WIOH!+R(,"H8AAFE[:)JI<7P@3$/5N57CK_?C4N8:I[J&QE,#'P'#$8_5D..A- MU0:8A.9%3P:3WL!\XH,S>N0I%J_!F\CQ@-,^T\=P:MCWC28)'*2E("Y89OI: MQ'V$N*IH=0I*50YZFQNO-^$4\NWVE$0[?]O7..P)NUCA.U$+BXSO@1T?(<8O MB"#U%N"KS<$L( 1$"BU+1CT/X<2@_M\AYX+%I3BZ MK(#CFK6K<$Q*G8$D1!]1<7>^%XEY\A1&D4>1ATD $^JC_X%/Q/27QBCL_,Y& ML-43-0N&_1G\'/2#\6P O\!#LR%^ NWGLZ'Z1WU?_+UP=VDX#_JS!>*)IH,) M_EC,^OACWA\R9?B[5'-^R79-YV,U&P[5O+]0\\G4D%2#/G:.8S8=X8_1:$9_ MX:CFP70R[SH&3U2_-YS2C]$DCXL.W+N'@8X;L$NAF'NR?JQI!P(^UF>_ MAU%"6-;D@6,ZT*/C9;A&PJ#U!UN41PYC9#7>.J]:'WB6P0\PG%^<73\[.M'@ MN-:F[[9H8$';L^MWT/05B$]\S6E_%K#?RJA7IQ(0=#]\JBXW&!V(3)CG59:: M$\)A4PYBOA''KS.(X[=@72_5;# _Z1VQUT3?]R!U'T;DC@?5)G)EX,XNP7BB MN*+N0EGKCW="%#]Q.!N$($:<[!#9\D5EMD!3M^ 8KBAX_FC(K,4AX2[SYB)C M6).%3%:F6,>.?Y8=-49(#R9"9ZQJL[&NGT(!S(P6<CP&;.T!MZ#>1Z!]^ M"98#$(VO\(1"233>0O;9&;"U#S75W]_%2_39D3'-I!IB$ )>CIHZ=+LLM5%H M)=]AYKE6HZTCN2#?BC&-8013H6D@5D.J=NNGI\"'CUZB$[T@,M';@.#'"M2E M7RH^0AH":G=-3$-2NW"O)0H)EM6O$?N[V@T\GBN<87&A*;H*9]@*(;8EAN;8 M5>CH+SE(MD$MD_#$+A2WBOP1F&B<>9_P:F<-*8!/IC;%$U AX.TV.QLF16:- M8&>=Q=?,-']+M-K<)0R3Y(7GRY&=9JD.6X->1H;15:DXW8\T6YN,A:A1XK0)7U>4SP9'0K 0F<9%A'6!Q M4O9LE?8:GRBH[%W'RQ>XP4M48!-BSW?(D^E(B6*61O=F<7OJG2A>0'0[7P"2 M2FG':US8LXEKC\!^M#WL&226RY*"?ZI&XI,SQM,"GDR& MO;EO7$QGO9'^I&Y;O'TLZ^)7IJN:]D),9X]6D1O-VU/<7;H*<.62R*@6>D?% M5^8\'Q?$E(V-Z'(38F@WCNM*@FGYBIB6<58ZG@?7*8]!#%B::Y@6W0T8FR,( MY\OPNDA<.RYCT4Q=O(!:0JS=@^0*'U+BJ(=*?*/KFC"IMKP96QU9<5[!U&!' M[FA-ESL4&^ ^9]4MK-I!_ ]C3,#E%9^9UMBY! M08Y$>7$W&,X-A?F<)63"PG652P;QKX02WNAH*YT7\K6A'*@$80(+!QH!:][H MC^,(!/,S9$I:9R&JP'B6W??/>3%&'CG(J,@K0:&66,\>3VXALU?'N$ M8Q2_ MDU;*0ON\\IZ''4-)0NHB\.I4NQRM>!/LU*K_Y/A5ML5?ENO27ST8Y./8* M_#4FFLFC,L\L*\+5W'H?P"PI=+=S.WB4KKC08_(Y/3HL.*8%/3MN5?^8>G(@ M2\4QMHUZ*0&\>L7^/P?,X!T-A]-T^7OB3(;I(?RSZ4I)#&/ZLC/ M4Y!O&%8!U%/\ L/:'2O20V2T2_:N0M.F?9)GG/>D=F!(B#Y YQO0W58X,MD- M7Z!46WJ+Q3N;U64YN8(=HIBTVS&I)Q84ZO4'PB#Q['"M==5P%%G$\E4@L M.E5)EKTW?B(, +(=#N-&>X=B%W(W I2>.^)J)!J$T\EW>"M" @AH6.$".# !2/H.07Y ^+&;B+/P/2>CRH1Y9F:">*'DU.=*)SH!\B>PZ\ MHJ=,K)(;#]H@JC>-D-E4M&J?>).!;O$WD?UM3#@\) M4EDWZ$8]Z19DP9][NN2YOFS]T]OH8ZF>)=GR?>?S[A![ M;_6P9#Y9%Q&B#Z0!2G($_+/RI*%L%GWFX\A$ -M'I!6:6$F"SW$ Q"#6BIY9 MKKBP[IH5;Q<9P1CX)*E_R%46 M%^^Q*PJ!;RE@'9 !D(HO1E/Q.B'H.QN/;KS?)7UFMMKG%?'E+@MO9?L.64W; M@'MX7P/])%F22+@9-\B9@STPG@\.I)9Q>]RB[RH5(*GE+/F8+@R1H.)R.*#;J7[-7U9ZCAI8"[N+;.SH36_0EH,!/ M'951:Z9X#)FSH3Q9X;(9\XE1OBGRI[6+JD*_$7%1;:6J,\9^!(9RZL,2/BZA MZ)"L2\0.11W($QXIFYIM!P89/2QIG++H1;E!_C9Y/YT=>$(?*6UW.D#J!1903MT1P3#P$(FS9#6 MVA!X6$,!T@JI8Y,C@/@[\2 VEF&*1^2]'=#8>/-QJ>+HJ/?6@_=!@[P1] M-F<1G2%F8T0%<9@'.D26;6Y"%<]X^V;_6SC?#9T\/.JH"R;H-6)_=HDW\!'%Q2L* M(B"3$ ,*)4&N?PB7506B)8G"% ^R(05]+MD#F*?(<+=R43_<$@0176.;",&P M8'3D= ^E>23\[79T='D3,"">8NL&^Z[.@KU\1F02T]RWX88)D4HENBC^B>1J MV487MH]!'[5-)-LQ_8&8:#&1",Q*/S&ZZ^0BR9MW[ZZ!K%OF#G/, M8SCN KFD-7.70Z\ JA9H4.[4#=V["TL0_R",L(-3ZD"#> UFEM;%J@*.G@*? MK\ L_4"\W>QTSD&ML^MS-9[V W7T \@/^"JB +U[9^8O!@#KFX(2M=6K)@%UNH_ M6.2U4?9.R^S4*'!\@0=):7_/V$*O%HA/L,O6\.R7N"J#?2$:J4SJ1'XH4 M48N3]O#9=&[@H3):(AJ=D(_[K0"!$'QATS%AAC0YO\VAT0)CU+1I]_!@I;!WL@74X MOT^S>YVJ1.%<2GT]B1R/$G"-EB$%.XTR>5,]:)M07R#=AB4&DQ!=_(%.I9ZS MY# KM.!JG8DGO0IKQ\CHG3L _G*AM)8(M%C5J\>"H:\C)QW=M4MJ6KD:+LT ZUG>T<\!K[7&4\,_/@W!AG[ MEQ"?J,%P'(QG0_QM, @FA+4=CN;!A)"S0["51O.YNOCQXDS-A\%\,5*S/F4H M'$QFP7@Z5(/1(I@-^@(@F$";_DR-Q\%T.E>#_B"8C\9J/@F&\YGB?$QZ,:!W MD*T#>O=P. U& WSC>#Q"N.QZ/X-T3ZZI]IJ][/G(O;-8(BU6C#EW\#;O_ M?/7**C7U'?)7N'FZNM*VPK06_6#<1T#W8#H,!M.IG9\[G%'0GTW4))A-IG[T M(_V0D9ILQ\;&#[EN7?ET$[.1@EGP5U6B94#8')G"1/P$U4WD=1>\3$ MY5):(NMIVT:\/#4WQB= RUT.[_#<)Q,+(Q-@F?.!#RP+]-HUUL5 M?-L=HWM)..9 V1R3^I$=@3EIXB,@$5/7@&O95-6$+7!"YE?]FU;5P.W-"P8N.SL0!L?S'1Q'K8HMI"=^QY)7+6@2., MY0NL*PDKBNO!5]$])11E10P&]RV&Y/C.':M7VYJ+A4VT2))&$A@L\AYH#)O1 MS=8N[#AZQD\@4$M.XL\3($,!F[-G:&(PLV/BPEBX8< /\ M6U_NKA?9ZC"H'DY$!8[SZY$9C60-BC L&45-1==")V!$O=N;+;Q:7L*K35HRQ94^_$.J/V)SM5CB&03"8J%(9<$ M;JLMC(??P XX $+?;?$*B/ZN#D>OW^7UULBY5:KTK4&S%+0V:)F->M/!-\H% MDC<>@J4%LK6 >B(X?';1F\P96Z1#U.X9]\F*7/)A(19%4]=_O#56S[A/5[)! MX0\6TP5>X P6HX7ZNW_(JM@!%847FN0 >)*0N'[U7FQ?HK(1/T*"=36?J1R]CW:Z+''5R:@L5U)>],8(K(NR5 MB5@RV8Q'$_ACV%=@GH]'^.L ?AU.Z-.AF@63>1]_!1L=3/09HA3U%=E>9]#[H31P,X;5SG0G*:A(27._L=3H* M)HN^]*I=J5O)E+IG-;FHP^P$3.$)3/&EK2/1: I[-0_ZTWE;WC-$% LR\$S? MX$#O_GP\;+U'I+_[ E>(_DUN6$4"DV*[8OF>,@&@;8X1->TO7\6L9IN1N[?Z MS6PUUM0$#_"@2-=.>AL*00GHEN;NWO*QR4YP%,>#$V-6.0I<3DAQK=SPT0K4 M\?!$LU7)G+&TP:+CT8E910[/\$6%'6$4;V6:RZ%W[P[.G:CF;Y M#8/2%#9R+TIT&Y"VN?U-;#WC!K*NP\>Z]:[">S-%ED.+X9!_+H;(=^("<21\ MVWHP7P3]^5P-IH-@.B:/WV(8] =]\OV-@^EHU%7C*!!OJE/;Z,QNIIMLIJL' M:MA\_* U;+D7UNRIS0=;4%Y!T,X+'6I"O.*#IE4ZT&23FVB?2;)T8$*#^H8] MLVZ:UB@'>K7GP7PQ56H$1#7%E9B GC8DRIO#$<-T7;"<):G?ZS<&^@E.X*9$LC%FT4K# M/6/7^FASZ&@Y8-Q9'T@"E55+S!)-B0#<>S%X:\;'+.TPLG0%(AU:M-K_A4:! M,U6U60$3(*H)Q\G($AR,AFP3@((_QO_[;$%.IFP?\,R6T+5NU6-].\[^"EPY$\(YU'WMO"9R1F#O#\8LG@'&> T-D@IX%>8 M< E_ (?07XMVZ0+\^4KL@HR[23":#4WCFRRM"MCMQ6",''8(_.O\<884VT^: MV>I^K?N:IZ9OD4B:0,E7#1QS,1K@!$9 =?I9+Z$@FH8S(K&I:> F((RH#=(I M"M]A;46!+\,* G=G X7S#B'DV9%6[Q=P]:++'E4Y9R/5>?T# M85)9P3QJG508*&8/?)PVE2 O47RA$[ U&FWE1JH-#F"J%+GPY"9E!J,GSE-Z^J)%008A=DD;JN ZV^4L(31 H]<\(\Z2':;B*H>?G MP $0"_H,_3A@;[P!XK3QL(LJK^55K,@S;+?%N7AI(Q:<@<9,J5$(RU5E"-)& M>C*:=H=N:]E?\(HV9A,A MZ !BQ6$A@-26^NUFNPB!:[<,A+2T(&H-4Y=GT6084?TE=L[NB*-]%+8(<(F: M<@.K(ASXT3O\6VUL?67W[>MX[FAZM*V3J?-)VZZZJ3@Q$UW["0QW.^V=S GG MOI=GGZRWC+CH(!>^VVR&\A0#NSY7U%XKNUMM99A1BR-S8#(9'-)'0\E!PT5+ M='?8_I#K9_%SQ@L"F;!+8,X/%0]A71U]"[W'OR7D\@"*A75&O7A,*XW6VYA\*Z,)LH?C"=A@)S), M@Y5W@$*EAX9S,KSX[-.^;L4 ^Z6MTU5LLU(K>MUK9[*!9G5=IWX06M9SUQ)I M4_CG=P_:0D"Y =3"&_>G[4-5!?PX&T#$9$62,P0[_$ M[C[J:/Q.]]8"C6F7&7PLD&/XK+\(IK/Q[V]OAX.QO[?#V8+V]G@TGZJ&^=N> M0:K36G::O\BR$DN/[#"$G=;/G=Q$N\SF;!;+-9LQ M ETZ5/Y\. XH82Z[?R@ Z>[O[[60= M.];->^T"CH3+15ZZ8(U]8_!Z"B9TROR1'+"-.SOY%Y!+FVGTKZ$98*W1@[Y# MMJ[PWAC"/V;D<+6+8B(G^T@,6'$?:$&3F'X.YC7M3YQN4GBR)!(0QW-*>4]_3"3Z:\@;BH/XORZIW8/1NZCSAE4?+(8O>< M8A=QNJU*S]7U2Y5)V8HE*V$A(SMXXP6'C"E3#.2A2=1!K1?_&;S9&H.M'1HK M+//JH;(YX+\VH'288AS0D(WWQ)D-!>WQ,@B"H?%">JXS0SN-A()!DH=RR_8& M'0DE P38TY=8F"C%C-N&V:/3H4_*_E6OC]OB9JO4&1ZY_ARO#)LQM@A:\VZC ME$SR2RPUZ]OH>_\$VN'+Y@8J1$!M9WHM3@\<4>+@>".V$N?726Y.0VV;M7."P?B0@/L:_NNJ&Z*S: M@EG@;-_6'/)MJ*S*#?4Y=6!^,\P"\SWFQSJ;\++.G8^YU3YD@O"MUBJS6)P( M?:877.FF0R>4;W>4DW3Z^H/NC!CR@;&/U@ZX.HXM0*YC*@_JM9MG)Q(U5Z]+TSK,Z M"V/]<].G1EH3:Q+*G.O"!(*8CSYN8[E?I[%\EC"DL7>E6%M7OK=V:6$;=ZUC MX8LJMJ;[;#&GH%M'F1%;Z!G=@NR3 M@LYD-C6R.LIE9;XYB.4#0\*)-6-F[NK&5*7T9_)U939K6A+&&V@)*YK?1IKI ME28U#O*?K"H9ZK9VOM(YS2C!"0QT:5R0M@8!^<+PR22\+^!8X'OH?9)EV WR44V0=?@"Y?,.WWBN3TVY)PLF!ZDF10&1S5HDVMSOEW@==>[1! M9JJR^MJ)#.@JX.IU3DRE$6[8'5@PI)KQX^8:=J,@SY/A8.02HT1&:AWPVS;A MSQG)#"^+'2^ROO0' K_"BT= NUWU$+G%J4LEX",';<-EJK0KX-CQ1HK9X6Q MJ58$P[B*-JGUA[]V[O9[^&0G_&=@J7'M80?/M?_P]Y"D,6&SUG2\JU,UUJ!? MI',S8CN)^,:;&^H:V]MV*U(8'YQ$O#9#L.2+;31V$VNV:4Q.]DJ;)\YDGZ/$ M-"&FO0 FDFT?"!L72-RQP"KNI57]^4)=5.+2Y():7B/1,IR>F!".D[#:E&*- M1LCLSE'HBVCG)KAWVH!*MA$G)\%.B4MS&>B/8)Q[.;%U#_RZ3?B1+A[8='\6 M8*K+^NK;"+ZT-&5[!;^FBZH:V/K>X5>II/AIIF5+,6F(W50&]U#5@36F-=$< MG;.2EI@C55A[(R-;]Q!()PB%/7=F!O9@<9YF6Z=JG!+=X\ K_5VE=7EVF6=( M&L>J\$^_US;5M"OZ[ >$_Z%!5.[J&O7=R=B$MRC0N6'S35%Z53+>@&8+L;F\S9+Y96)YHW4_L7/7R2GB&=;CE^8>B_"=[NKIWA5(+DS* M:F^M)HD9%;T+B/Z+7^TZ/,)E3! W^R"GQ4/&CRCL8,J@V($XW04-1[\,X9CU&3"_%Q8:@PF)\XQA:#V?X"SPP6;BF M4:DS";DC0E >O]^,R/FD>;. 5#A.&]QA*MDVA]Y6:&V_PU3R1M'F!;47A"P^ MCX$HGP4(1N(ZGO9&)]_0U\-%;_I-*WICA8(D+$Q>CN[QW(?NA7P)2=)]679M M0+L;$ YKSJ)M:!^+FK[%G+'G2'#+IUAL0'!UW -[Y%RS76-C"]B5UJ1%+E(67JT^K)OE'IS M&W>C.S<,+UHQ"1Q,2I(6Q:DSN8XPDPS?,ZM(IW;['PZ^:=)$RV[^?HFC/I02[6P3 M_IJEDIS\$R_P= QRB,P,VP]FO=DW#<*R+GMWW9P:>6]TD;UC_5M#57O&N4+6 M^CH[D==!C1B$U:F_M]9!T?E:N" %KN45Y8$G-V1)?L4B7L54ORK09J_@C+6, MPA)JZ.305\1-=C-.+VJ!]CW=^QTQ=$Q]$^GDG\ZHJY0$%C&&_>/'1G@,T1)A MKNN6Q('Y88YOUYR'[Z.MWSA[2N\C_LP5KEQ?8!OX"6FRN2"GHSPBY M*1*=]&P73UU&>.-\<9J1+L> M74R9@5;D)O@0,:9*TM7)$:5XJW-S31'7>C!N$J[4Q-S1323BY_.(B35MU*!_ M^C>G+B FS1%*^=FMTU&;V>%4QU[3DGT8P'DR;QQX;LZXBC2+&*H<)N/ZJYVR M,UMF2VU>AS4PM94=[37"06RIE0N-Z*? @U3X=*)0@['6^-NE$$==8(B%Q'!# M-1F>3D8@$Z+W]1&2"L/4>8TASU7X0!D-,04'+(%-1#'H=M$XH!CJ6^H?%&P& MUSHG=^PZQ/I#SGNP"9PM#-^;VS?LZ2,>;]+R2M<-A>(=,[H+'3O?]STM'7.K MT''V%:U%G5LY$K(198I$N*)%^_4=1,D=L"+>79*> M.FD8.WUT9,)_Z\\Z8WA@I )H#^8LZXSA91881*2C\GG)N+L**G0DWK;7_+P$ MN9(.NY[QUT_G^UW-"_:=DLIKDG;?31G0?1VX]E1K4;OOW*)N5"EJZ4;WOO.N M%:+OM,ON:%TH:>CD#_G.38NJ._7N-O(&LV9MQV^+Z?FG_H93Y>W:>3R!'9G& MFV 2UV/K[2?=>\M^ENI5S,#=@N7IRL0H>==U G13-Z?A*N8(=EADG/#,9F_Q M@DODD^04Z"Q='IVTZGI8, MI$@ZDMQ(/Z!N9#$)-# MVB@T!)::*VRQ3L,=%WZ$$Y;1FJL@A?0",C!L2V=[T52_\:ACE=V:$_4+!CV^29(,)X- M]&\X8PSJ?#=4_ZOOB[X6[2\-YT)\M$- T'4PH5Y0XOM\;49"GQRDA>H-!-U'30Q-^:,8/C?C'7%VT3L[<>&IB0J KPP,ZL$R? M%?X@!E5[X^#0-S[6+](L/(I:F.??\&K0MK>',9[I;';VR6M3$]>IV:PKG1MU MK/6!9P2I.S["&K=')Z:X7;^#IJ9D>G\6J*-S5TD[503^4^Z' M3S%;'T+U3"GR5UEJZ)T8\NDS4N/>2()K9Q#';\&D7ZK98'Y2KY-.1H-7PAT. M+RA?.BA0+,%BPUTT72AK Z_9E1V1D3XZ+]Q!=87K^>$Z?0): M&7<*HI-#QZ)"]] %^PR0D4Q79:(YUMJ3LX 0)(GB#Y <-I5)!7"^59!$'YGW">=V;=%T9 MDOVB]\:4=@O/\UU>IOE;HM7F+B%X//>)2:CYY<-E6^Q;/3P>#0.^Q9@OS\1#U PPMX:JZ?"8X$IJUX/!T=[Y. MP;'I0O%X'X)R04I2FP-R1@N0PUL6O3%20"^^YT:,]-=RE*S=3MKNCNO:I?5XJ%1HC MT>4FA>0O,PZPF).BY)2RU7I(W62L3B2 [/:>NH9I$>)I;(X@G"_#ZR*;J\\P MEAJ\24N(M7N07.$C867HH2H*ZR]T=D37$MOJ:% ]';8SLEL_#9-3=(E>ZV+6K+QXR5_!!KY-"W<)I0 ! MW<;:QF@DT]4%S%3/F<$9:$[00X-$I$)8H!&4M?H8@@OFNHI<\]B I&W]XL]X M,8$?J3 & 4TI1;=.9I70R36U08\)OM<5]SSL.(K!DX;21>35 MJ72Y2?V"_1J5WWR?BK;8JW)=^LMG0RO$OQ%/&!/-Y%&99Y85R64 YP/$4B3) MGNW@4;KB0H_)Y_3H?N! &O3L.&?]8^K)@2P5S]@>GMA[Y(D:P8EJOV/[U$70 MO&V4U32ZP^$02(Z MM:]U=12=$;>Z*'J&=(C_=QM$AY\;;;[O,W7HU#C$C/,\IZ*-ZB7?/,!8IGF+ MDWX09'9(-YSR6)=0='I>G/;'1(G^9Q->#IWEG6=>&&[!+FJ^4XITPS1"N<6T M)BWJ;:B39YRJ),O>&Z\/1ATM3%NG795+%*#TF O6AM/)=PB+TO6\N6JE_@:9 MH^ -L,YPT1F=DLM^&/%@#=7 ZH!&8V+-/K+01(F0%J/AR]QW5V*7>)$YT _1/;FJK>V2FX\/(6HWC1" M77^Z<8;?I11*H5#'/6:P%-TR6G5>K BY<)OK*3 KX)9&1F[P@/6 ]2L#6R[V M(->(6[)PCY7AE>QI1$"N3/(=2Z;=14^/WU**KV92U!8+>&"1X\#J18&N-WB(AO2U-.%_F]*$W=7*NI5IEZ.9]I]? M.*SSC9K!X/M,N.(P]ONU'EBM'E@[:+6Q.4VR^%I%[&L5L0.KB#72M9G;LB^8 M^7G;(A638*I&N.M"0GO)$H_XU_I:O^OZ6@?*D3UEN=3'3?*TV(;+Z$]'6\ET M./(9_ID+NETZSC?7 MN&.9A&ID'MV!7L=CHCT_6+Q_E5'_'\BH7=360<\'4L[7NH!?ZP+^=G4!'Y=C MO(L%FVR=5SZ/G ME"GL!)YX=_U<'3]!T?2MO81.**DB<#YX:^]V/_'^[I0HK]L/J"UW-YA+M4I,:][>9%Z2:N;=\=[4QRS? 51O0ODS^3NV[M+FJY MN;U_).VWM+M>L*_=&5" R1+@Y$6Z^"B*(BG$[CY@5A]WU6FY ]&M/X/V_/ 5 MTU?A$QB0S8^,]F@LJ)05891/>\*.;BB"KDG2S&UQ);DMGKNY+:R6T37M-HB= M._^_F%PQCY[H580EPRR:):BG]MG_@'AP"2)=SP3TF8C2KMETGO8=6-,=!UBW M$>)L1R0R"2.-G1$X!X@96&DC4=6KR[<7S]7UV[.W%]<-PD#4YD\_DJ[8&,19 MD@C17A$*M>AL>2#B\M&+9Y"(5PX2$?AUH!WCAX(W'6A";:Q@%SVZDP[@N\J-[+0F)I4VT:#Q>8VZVQI+(9'D+(N@D> M3X.-T4O6AB8GT5 O=2XOT_@3M&R MUYFXXQ"@CUZ,P(]&ON#HYS]AQSZOU^=P4K$7]?8^^U(]H8WQA?IZD55?:H(O M0#I]?E<[ M-FDA+LU=H3-]I_OL^AR3,GP66^G* + #;?7HMYEGX9R&]\A.Z+9.0=*4E1(* MD^]Z$):$RY @K&K_DY^ Z3J%A35W%UT[L]4:VS7?9SIONHN3VJ5P>2@3@A@( MDF8OK.23YMG5]-$3Q4TIH].7!(]N]K=KRKL?%>/] &R7XV5WT30[GM1O>-4D M\C;,5<,U0"6?7H6;EN)\HJR=:O]5RY)TZ+#/7:Y_E6P=HZ$ GOL"" M"+$F1*P-,%9@+@HYJ%D/VG6H0OZ8][1BQW9;=3Y@JZ%Q(5*KY;-!RV?#%H>9 M8+*:9\H+@W9+(HVNZS0(&W"M3['HJ(LW>;:.*/$)L/H7$5[PZA#CQ@9\PS@E MTW"'O\,,5'NPGDF)B:Z&VD_=]3U!L[J^[ )Y=;6OX[$\&%;70[K^Z M"\WJ>HI>\ 4CMY]@8+@QFS]+F,GVV*+CO"+$L9OM79?8'#_53B7 M+R;Q]\YXYZJV"XF=LN=="GIO0L+*9: >RJE09Y*-TS-M AV);HF;'#*/3^6G MG[1FCQ!*C?Y;LX(5+IR(,F9=88"0UH=+1WW"[KNA0VO+N4Q%1D#IC^P+L16< MI+PV@IT.#.==;GXH"MN\2YVZ 9?IMN(H$IQ5&$?($K(V79WC@[ILZ(D?8"&P MLU,@F%-4X9UP:J!O*2'*'O>)^JMW 2__$.4ZV>,JNFF(I(X9%>Y07>;B-.2Q9R(>O!7#Z%\Y;%*XS^4[+7UNS60:T7_QE,@AYO M@.H-Z _OTCL7,AO*/8E8:D-HYUF[,=;9LIY'4U(&U M#KEB4'6#T!E,C"QEUZ@LFE.UOGV8'1LP.F #ZE.P.34JE\U2>HZ'+2X:99MA M9+0M3->LIB-UJ?PZ5LTB0H6ZIU2B%1=@Q5TRR9B)93LSEY_B7*BK%7AI(2@ M=C0N-TN*@"9K2&%G0VMDVP0K(U +*P@AD$] /RTRO/[88.@A+!O<*;KIX;7A M5IC6<4O,(G@$&TX):E% MW& (];K)@=TL-+-!E:]!8# 6$)?:;B,M0G>"]_O=2UN[S(%7%=UXH-7"5Q/S ME8X*T)HZQOM%MG(/JVH&@J3>(DWVXJ.D +<]DLV$<'^.SAX0S=UMBG*Q8\^< MU)DF8'WQY$B"O*NX>-]M.S2:FH/7P@JP5G/+>1KUYBV?#MM.&99/=C_]MBC* M[_\?4$L#!!0 ( &! 4^K+S8>-P( -<) - >&POB27"E=?TZ")JL DZ:"UF#,)%" M*DZT<549-+4"DC=6ZNMGR/]G+V:S\.'\^A _&Z!3#*ID#:; M8Y1%%FD>?3CRGMVWGH=3(96K[2OX[[H??A 8/"N0,C8*G&,/I'%-M 8E;HWC M!COPFQ#J[=6V-@I+1;;1?(&G!/H#1F4%@YBI:5_6M9!S:H MM>3&R"DII2!.PY#1&X8V \;N[:'^5.QQ=P7R8^R6A!A9%8-I9MV;TZZ%3O(N MF^?>H;TZBA;5="/UV];,1CC?GARX4U#0SOE=,=8W[*2NV?8-HZ7@X.?RTX+1 MD073F QU4"45?31\]J1D!@"%T0:4IMDN\D61>@6='DY35QRK>7Z"FI]ZG4L0 MH C;%6V._O^\RO]8\>6K/Y?L+I5#P4^HT7:H$Q"Y. 61R[\L,N@O])VNL=#VV:2?XHWTML+VK>VH=AEZ3M7EE[?&;W!P*TC)]9Z?H M@@F>[/=6>+0<1ZU&B@1/]@?(:(NKP,CT381BM1(*D[ZZW&Z7=+-EXWYY-)J[:B(:[WTPK-.Q9&=MP#YMV/7&M%;QV&R%\ MHR;9='HZ:;C4R<6DT%(:"6RFV[F5_V&0<*CR('_QNEDP3 MQCMO+J7RPLZY%U?6=*W4ZUF2)FPEK?/+<.V^9B.U;.1/4?=;;F.VOQLK?QKM MN5I6UBC5'Q5V] ?!%=QSR:VP7E:#BI[?W7!@G26G4SCA@W3R3BKIGV9)_U^) M!.YB$MU&'X?#[RZ(9_:_A-&L5K(22=AA%W4:P.D@SV';*%G#U6OV MF2NN*\'ZD#MV\D<,F2&0V1$A_\PBR!R!S/]'R&6 " XV$>1;!/(M+>1T<(MNZ;A]JE_KG*M)1S&X3%_JBK3P6@90;Y'(-_30MZ(!Z$[ MP6Y$98"QC^3)-S"C^R4>P*?8"#ZE1?PBN!-NC KU"K%8%AH"YXU]BH$PAZ3$ M$KDRIMY*I=ZP:[\1%@9ES_4Z0+!/SL6C2HI9)"76"#1_V\&0!43ZDL-&B1DD M)59(2*P:P7[PQ_$!$!-'2FR.A:X[Z"=/;"G6H>H;=B7,VO)V(ROH0G%FC=DC M([8':N%!;IUA.LF(=3+FX;ET?+VV8LU]C(E.5(@E,X89>HZ%B3+,7&),3#(9 ML60.*0-,J]6PRV288S)BQSSG#*-DF%R8B]\L_D832.F%4R M\@G)>!8Q@HEY)2/VRBN82SAUW:DX5\PPQ63$BD$=S4[B=1%,,3FQ8E 3#I=O M,,7DQ(K!39C'F)AB,<3$_),3^V>?5_0_P.<\.YD+SZ4:#.TY9J"1C?(;XQ)F:@G-A >\Q+J3E(!T+Y MLER[:-HXWRTP Q7D!GI.+$?:8X%9IR"V#IY9QM8I,.L4QUP]&UBGP*Q3$%L' MQRQC3/0M#+%U<,S3&!.S3D%LG7]/)\9Z#R:<@E@X:*(^\&*!2:0W#C!U>HF__>^M,#A_0U&(E MM:B_P243C?Y 0 >B$ !H !X;"]?; MKD_M^,VN&TYU&3\.^]#7F]=ZGX(NEZLP3&=4CP_3F8OG[;H:GK=2+7[5PSZ5 M=17>CN%/-[SF)J62P_E-;L8%XT_>^_0_Z[O=[K!)3]WF]RFUY8N*?PNJ\'60 MS@Y/-!3@^*\T&1'K2:#UK1@V[G@V[I07?S07?TH/OYH'MZD"R! MC$M^$L*:K[4 KH7OM0"PA2^V +*%;[8 M(6OM@"VA>^V +B%+[< NH5OMP"\ MA:^W KV5K[<"O?4*]]KH9INOMP*]E:^W KV5K[<"O96OMP*]E:^W KV5K[<" MO96OMP*]E:^W ;V-K[BPA*^W ;V-K[D>@=^3K'8'>D:]W!'K' M*SRK1 \K^7K'B=ZYJ8>T?2G#H=WG2Y=\&OYMS03N7-Z/Z?(9YZG?[I\H7<8M M*9Q?+WZ)GZ=^1(1/?[5X_ M02P,$% @ 8$!3W>_$UO6 0 -2$ !, M !;0V]N=&5N=%]4>7!E&ULS=I=3\(P% ;@OT)V:UCIQ_R*>*/>JHG^ M@;H=V,+6-FU!_/=V$TPTF&" Y+UA;*<[Y]UHGBMN7C\V2W-_MIYEVKFU*'1MKV,I4OYJ.-PUS3^VP)M2-"V=I039Z6*=]4]*]H=C9K2JILN>S2+7EPGG05:J+8M7FHM:?J)?K&S#=Y MG[6/C[I+C=FZ93\6Y*?+$3]:VAU@J!QSSX=\2MY]02P$" M% ,4 " !@0%/'R// \ 3 @ "P @ $ 7W)E M;',O+G)E;'-02P$"% ,4 " !@0%/)^B'#H( "Q $ M @ 'I 9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0 ( &! 4^#&Z97 M[@ "L" 1 " 9D! !D;V-0&UL4$L! A0#% @ 8$!3RG,6<4Q P -@\ M !@ ( !]P@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3[[ELM6$! U!0 !@ ( ! M(A, 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M 8$!3ZPRRDU6! 3!0 !@ ( !VR$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3S9E9-^T 0 T@, !D M ( ! 3 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ 8$!3RUJ^ ZV 0 T@, !D ( !Q34 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3P$: M!"ZV 0 T@, !D ( !BCL 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3ZWO#,FV 0 T@, !D M ( !AT$ 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ 8$!3S95C_JY 0 T@, !D ( ! M;4< 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 8$!3^85C2:W 0 T@, !D ( !5DT 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3[; [D[/ 0 700 !D M ( !&%H 'AL+W=O7 >&PO=V]R M:W-H965T&UL M4$L! A0#% @ 8$!3]86C&LN @ FP8 !D ( !G&$ M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M 8$!3TWA9 G@ 0 V 0 !D ( !YF@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3UPJ6XP2! MDQ4 !D ( !BF\ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3XYI.<23 @ "PD !D M ( !('D 'AL+W=OP >&PO=V]R:W-H M965T&UL4$L! M A0#% @ 8$!3X]^N+91! JQ8 !D ( !_H, 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$! M3_D',UQW @ '@@ !D ( !QHP 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8$!3U,.^R\D @ = 8 M !D ( !S)0 'AL+W=O&PO&PO&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4 " ! M@0%/=[\36]8! U(0 $P @ %:XP 6T-O;G1E;G1?5'EP =97-=+GAM;%!+!08 0 ! '(1 !AY0 ! end XML 67 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 68 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 69 FilingSummary.xml IDEA: XBRL DOCUMENT 3.19.2 html 120 296 1 true 33 0 false 5 false false R1.htm 0001000 - Document - Document and Entity Information Sheet http://www.irobot.com/role/DocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 1001000 - Statement - Consolidated Balance Sheets (Unaudited) Sheet http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited Consolidated Balance Sheets (Unaudited) Statements 2 false false R3.htm 1001501 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical) Sheet http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical Consolidated Balance Sheets (Unaudited) (Parenthetical) Statements 3 false false R4.htm 1003000 - Statement - Consolidated Statements of Income Statement Sheet http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement Consolidated Statements of Income Statement Statements 4 false false R5.htm 1004000 - Statement - Consolidated Statements of Comprehensive Income (Unaudited) Sheet http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited Consolidated Statements of Comprehensive Income (Unaudited) Statements 5 false false R6.htm 1005000 - Statement - Consolidated Statement of Shareholders' Equity Statement Sheet http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement Consolidated Statement of Shareholders' Equity Statement Statements 6 false false R7.htm 1006000 - Statement - Consolidated Statements of Cash Flows (Unaudited) Sheet http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited Consolidated Statements of Cash Flows (Unaudited) Statements 7 false false R8.htm 2101100 - Disclosure - Description of Business Sheet http://www.irobot.com/role/DescriptionOfBusiness Description of Business Notes 8 false false R9.htm 2102100 - Disclosure - Summary of Significant Accounting Policies Sheet http://www.irobot.com/role/SummaryOfSignificantAccountingPolicies Summary of Significant Accounting Policies Notes 9 false false R10.htm 2108100 - Disclosure - Revenue Recognition (Notes) Notes http://www.irobot.com/role/RevenueRecognitionNotes Revenue Recognition (Notes) Notes 10 false false R11.htm 2109100 - Disclosure - Leases (Notes) Notes http://www.irobot.com/role/LeasesNotes Leases (Notes) Notes 11 false false R12.htm 2116100 - Disclosure - Inventory Sheet http://www.irobot.com/role/Inventory Inventory Notes 12 false false R13.htm 2117100 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssets Goodwill, Other Intangible Assets and Other Assets Notes 13 false false R14.htm 2118100 - Disclosure - Accrued Expenses Sheet http://www.irobot.com/role/AccruedExpenses Accrued Expenses Notes 14 false false R15.htm 2119100 - Disclosure - Derivative Instruments (Notes) Notes http://www.irobot.com/role/DerivativeInstrumentsNotes Derivative Instruments (Notes) Notes 15 false false R16.htm 2122100 - Disclosure - Fair Value Measurements (Notes) Notes http://www.irobot.com/role/FairValueMeasurementsNotes Fair Value Measurements (Notes) Notes 16 false false R17.htm 2123100 - Disclosure - Stockholders Equity (Notes) Notes http://www.irobot.com/role/StockholdersEquityNotes Stockholders Equity (Notes) Notes 17 false false R18.htm 2124100 - Disclosure - Commitments and Contingencies Sheet http://www.irobot.com/role/CommitmentsAndContingencies Commitments and Contingencies Notes 18 false false R19.htm 2126100 - Disclosure - Income Taxes (Notes) Notes http://www.irobot.com/role/IncomeTaxesNotes Income Taxes (Notes) Notes 19 false false R20.htm 2127100 - Disclosure - Industry Segment, Geographic Information and Significant Customers Sheet http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomers Industry Segment, Geographic Information and Significant Customers Notes 20 false false R21.htm 2202201 - Disclosure - Summary of Significant Accounting Policies (Policies) Sheet http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies Summary of Significant Accounting Policies (Policies) Policies http://www.irobot.com/role/SummaryOfSignificantAccountingPolicies 21 false false R22.htm 2308303 - Disclosure - Revenue Recognition Disaggregation of Revenue (Tables) Sheet http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueTables Revenue Recognition Disaggregation of Revenue (Tables) Tables 22 false false R23.htm 2308304 - Disclosure - Revenue Recognition Contract Balances (Tables) Sheet http://www.irobot.com/role/RevenueRecognitionContractBalancesTables Revenue Recognition Contract Balances (Tables) Tables 23 false false R24.htm 2309301 - Disclosure - Leases (Tables) Sheet http://www.irobot.com/role/LeasesTables Leases (Tables) Tables http://www.irobot.com/role/LeasesNotes 24 false false R25.htm 2316301 - Disclosure - Inventory (Tables) Sheet http://www.irobot.com/role/InventoryTables Inventory (Tables) Tables http://www.irobot.com/role/Inventory 25 false false R26.htm 2317301 - Disclosure - Goodwill, Other Intangible Assets and Other Assets (Tables) Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsTables Goodwill, Other Intangible Assets and Other Assets (Tables) Tables http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssets 26 false false R27.htm 2318301 - Disclosure - Accrued Expenses (Tables) Sheet http://www.irobot.com/role/AccruedExpensesTables Accrued Expenses (Tables) Tables http://www.irobot.com/role/AccruedExpenses 27 false false R28.htm 2319301 - Disclosure - Derivative Instruments (Tables) Sheet http://www.irobot.com/role/DerivativeInstrumentsTables Derivative Instruments (Tables) Tables http://www.irobot.com/role/DerivativeInstrumentsNotes 28 false false R29.htm 2319302 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Tables) Sheet http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables Derivative Instruments Schedule of Derivative Instruments (Tables) Tables 29 false false R30.htm 2324301 - Disclosure - Commitments and Contingencies (Tables) Sheet http://www.irobot.com/role/CommitmentsAndContingenciesTables Commitments and Contingencies (Tables) Tables http://www.irobot.com/role/CommitmentsAndContingencies 30 false false R31.htm 2327301 - Disclosure - Industry Segment, Geographic Information and Significant Customers (Tables) Sheet http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersTables Industry Segment, Geographic Information and Significant Customers (Tables) Tables http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomers 31 false false R32.htm 2402403 - Disclosure - Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail) Sheet http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail) Details 32 false false R33.htm 2402405 - Disclosure - Summary of Significant Accounting Policies Other Assets (Details) Sheet http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesOtherAssetsDetails Summary of Significant Accounting Policies Other Assets (Details) Details 33 false false R34.htm 2408405 - Disclosure - Revenue Recognition Significant Judgments (Details) Sheet http://www.irobot.com/role/RevenueRecognitionSignificantJudgmentsDetails Revenue Recognition Significant Judgments (Details) Details 34 false false R35.htm 2408406 - Disclosure - Revenue Recognition Disaggregation of Revenue (Details) Sheet http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails Revenue Recognition Disaggregation of Revenue (Details) Details http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueTables 35 false false R36.htm 2408407 - Disclosure - Revenue Recognition Contract Balances (Details) Sheet http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails Revenue Recognition Contract Balances (Details) Details http://www.irobot.com/role/RevenueRecognitionContractBalancesTables 36 false false R37.htm 2409402 - Disclosure - Leases Lease Cost (Details) Sheet http://www.irobot.com/role/LeasesLeaseCostDetails Leases Lease Cost (Details) Details 37 false false R38.htm 2409403 - Disclosure - Leases Supplemental Cash Flow (Details) Sheet http://www.irobot.com/role/LeasesSupplementalCashFlowDetails Leases Supplemental Cash Flow (Details) Details 38 false false R39.htm 2409404 - Disclosure - Leases Maturity of Operating Lease LIability (Details) Sheet http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails Leases Maturity of Operating Lease LIability (Details) Details 39 false false R40.htm 2409405 - Disclosure - Leases Financial Statement Impact of Adopting ASC 842 (Details) Sheet http://www.irobot.com/role/LeasesFinancialStatementImpactOfAdoptingAsc842Details Leases Financial Statement Impact of Adopting ASC 842 (Details) Details 40 false false R41.htm 2416402 - Disclosure - Inventory (Details) Sheet http://www.irobot.com/role/InventoryDetails Inventory (Details) Details http://www.irobot.com/role/InventoryTables 41 false false R42.htm 2417402 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail) Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail) Details 42 false false R43.htm 2417403 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail) Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail) Details 43 false false R44.htm 2417404 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details) Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details) Details 44 false false R45.htm 2417405 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details) Sheet http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details) Details 45 false false R46.htm 2418402 - Disclosure - Accrued Expenses (Details) Sheet http://www.irobot.com/role/AccruedExpensesDetails Accrued Expenses (Details) Details http://www.irobot.com/role/AccruedExpensesTables 46 false false R47.htm 2419403 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Details) Sheet http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails Derivative Instruments Schedule of Derivative Instruments (Details) Details http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables 47 false false R48.htm 2419404 - Disclosure - Derivative Instruments (Details) Sheet http://www.irobot.com/role/DerivativeInstrumentsDetails Derivative Instruments (Details) Details http://www.irobot.com/role/DerivativeInstrumentsTables 48 false false R49.htm 2422401 - Disclosure - Fair Value Measurements Fair Value on a Recurring Basis (Details) Sheet http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails Fair Value Measurements Fair Value on a Recurring Basis (Details) Details 49 false false R50.htm 2423402 - Disclosure - Stockholders Equity (Details) Sheet http://www.irobot.com/role/StockholdersEquityDetails Stockholders Equity (Details) Details http://www.irobot.com/role/StockholdersEquityNotes 50 false false R51.htm 2424402 - Disclosure - Commitments and Contingencies - Additional Information (Detail) Sheet http://www.irobot.com/role/CommitmentsAndContingenciesAdditionalInformationDetail Commitments and Contingencies - Additional Information (Detail) Details 51 false false R52.htm 2424404 - Disclosure - Commitments and Contingencies - Activity Related to Warranty Accrual (Detail) Sheet http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail Commitments and Contingencies - Activity Related to Warranty Accrual (Detail) Details 52 false false R53.htm 2426402 - Disclosure - Income Taxes (Details) Sheet http://www.irobot.com/role/IncomeTaxesDetails Income Taxes (Details) Details http://www.irobot.com/role/IncomeTaxesNotes 53 false false R54.htm 2427402 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail) Sheet http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail) Details 54 false false R55.htm 2427403 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail) Sheet http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail) Details 55 false false All Reports Book All Reports irbt-201962910q.htm irbt-20190629.xsd irbt-20190629_cal.xml irbt-20190629_def.xml irbt-20190629_lab.xml irbt-20190629_pre.xml irbtexhibit31162919.htm irbtexhibit31262919.htm irbtexhibit32162919.htm http://xbrl.sec.gov/country/2017-01-31 http://xbrl.sec.gov/invest/2013-01-31 http://xbrl.sec.gov/dei/2019-01-31 http://fasb.org/srt/2018-01-31 http://fasb.org/us-gaap/2018-01-31 true true JSON 72 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "irbt-201962910q.htm": { "axisCustom": 0, "axisStandard": 13, "contextCount": 120, "dts": { "calculationLink": { "local": [ "irbt-20190629_cal.xml" ] }, "definitionLink": { "local": [ "irbt-20190629_def.xml" ], "remote": [ "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-eedm-def-2018-01-31.xml", "http://xbrl.fasb.org/srt/2018/elts/srt-eedm1-def-2018-01-31.xml" ] }, "inline": { "local": [ "irbt-201962910q.htm" ] }, "labelLink": { "local": [ "irbt-20190629_lab.xml" ], "remote": [ "https://xbrl.sec.gov/dei/2019/dei-doc-2019-01-31.xml", "http://xbrl.sec.gov/invest/2013/invest-doc-2013-01-31.xml", "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-doc-2018-01-31.xml" ] }, "presentationLink": { "local": [ "irbt-20190629_pre.xml" ] }, "referenceLink": { "remote": [ "https://xbrl.sec.gov/dei/2019/dei-ref-2019-01-31.xml", "http://xbrl.sec.gov/invest/2013/invest-ref-2013-01-31.xml", "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-ref-2018-01-31.xml" ] }, "schema": { "local": [ "irbt-20190629.xsd" ], "remote": [ "http://xbrl.fasb.org/srt/2018/elts/srt-2018-01-31.xsd", "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd", "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://xbrl.fasb.org/srt/2018/elts/srt-types-2018-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2018/elts/us-gaap-2018-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2018/elts/us-roles-2018-01-31.xsd", "http://xbrl.fasb.org/srt/2018/elts/srt-roles-2018-01-31.xsd", "http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2018/elts/us-types-2018-01-31.xsd", "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd", "https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd", "https://xbrl.sec.gov/exch/2018/exch-2018-01-31.xsd", "http://xbrl.sec.gov/invest/2013/invest-2013-01-31.xsd", "http://xbrl.sec.gov/naics/2017/naics-2017-01-31.xsd", "http://xbrl.sec.gov/sic/2011/sic-2011-01-31.xsd", "https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd", "http://www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "http://xbrl.fasb.org/us-gaap/2018/elts/us-parts-codification-2018-01-31.xsd" ] } }, "elementCount": 392, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2018-01-31": 14, "http://xbrl.sec.gov/dei/2019-01-31": 5, "total": 19 }, "keyCustom": 10, "keyStandard": 286, "memberCustom": 2, "memberStandard": 28, "nsprefix": "irbt", "nsuri": "http://www.irobot.com/20190629", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentTransitionReport", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "0001000 - Document - Document and Entity Information", "role": "http://www.irobot.com/role/DocumentAndEntityInformation", "shortName": "Document and Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentTransitionReport", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2108100 - Disclosure - Revenue Recognition (Notes)", "role": "http://www.irobot.com/role/RevenueRecognitionNotes", "shortName": "Revenue Recognition (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2109100 - Disclosure - Leases (Notes)", "role": "http://www.irobot.com/role/LeasesNotes", "shortName": "Leases (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2116100 - Disclosure - Inventory", "role": "http://www.irobot.com/role/Inventory", "shortName": "Inventory", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2117100 - Disclosure - Goodwill, Other Intangible Assets and Other Assets", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssets", "shortName": "Goodwill, Other Intangible Assets and Other Assets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2118100 - Disclosure - Accrued Expenses", "role": "http://www.irobot.com/role/AccruedExpenses", "shortName": "Accrued Expenses", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2119100 - Disclosure - Derivative Instruments (Notes)", "role": "http://www.irobot.com/role/DerivativeInstrumentsNotes", "shortName": "Derivative Instruments (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2122100 - Disclosure - Fair Value Measurements (Notes)", "role": "http://www.irobot.com/role/FairValueMeasurementsNotes", "shortName": "Fair Value Measurements (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2123100 - Disclosure - Stockholders Equity (Notes)", "role": "http://www.irobot.com/role/StockholdersEquityNotes", "shortName": "Stockholders Equity (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2124100 - Disclosure - Commitments and Contingencies", "role": "http://www.irobot.com/role/CommitmentsAndContingencies", "shortName": "Commitments and Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2126100 - Disclosure - Income Taxes (Notes)", "role": "http://www.irobot.com/role/IncomeTaxesNotes", "shortName": "Income Taxes (Notes)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1001000 - Statement - Consolidated Balance Sheets (Unaudited)", "role": "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "shortName": "Consolidated Balance Sheets (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "lang": null, "name": "us-gaap:AvailableForSaleSecuritiesCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2127100 - Disclosure - Industry Segment, Geographic Information and Significant Customers", "role": "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomers", "shortName": "Industry Segment, Geographic Information and Significant Customers", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2202201 - Disclosure - Summary of Significant Accounting Policies (Policies)", "role": "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies", "shortName": "Summary of Significant Accounting Policies (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2308303 - Disclosure - Revenue Recognition Disaggregation of Revenue (Tables)", "role": "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueTables", "shortName": "Revenue Recognition Disaggregation of Revenue (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2308304 - Disclosure - Revenue Recognition Contract Balances (Tables)", "role": "http://www.irobot.com/role/RevenueRecognitionContractBalancesTables", "shortName": "Revenue Recognition Contract Balances (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2309301 - Disclosure - Leases (Tables)", "role": "http://www.irobot.com/role/LeasesTables", "shortName": "Leases (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2316301 - Disclosure - Inventory (Tables)", "role": "http://www.irobot.com/role/InventoryTables", "shortName": "Inventory (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2317301 - Disclosure - Goodwill, Other Intangible Assets and Other Assets (Tables)", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsTables", "shortName": "Goodwill, Other Intangible Assets and Other Assets (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2318301 - Disclosure - Accrued Expenses (Tables)", "role": "http://www.irobot.com/role/AccruedExpensesTables", "shortName": "Accrued Expenses (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2319301 - Disclosure - Derivative Instruments (Tables)", "role": "http://www.irobot.com/role/DerivativeInstrumentsTables", "shortName": "Derivative Instruments (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowHedgesIncludedInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2319302 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Tables)", "role": "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables", "shortName": "Derivative Instruments Schedule of Derivative Instruments (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowHedgesIncludedInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": null, "groupType": "statement", "isDefault": "false", "longName": "1001501 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)", "role": "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "shortName": "Consolidated Balance Sheets (Unaudited) (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": null }, "R30": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2324301 - Disclosure - Commitments and Contingencies (Tables)", "role": "http://www.irobot.com/role/CommitmentsAndContingenciesTables", "shortName": "Commitments and Contingencies (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2327301 - Disclosure - Industry Segment, Geographic Information and Significant Customers (Tables)", "role": "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersTables", "shortName": "Industry Segment, Geographic Information and Significant Customers (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2402403 - Disclosure - Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail)", "role": "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail", "shortName": "Summary of Significant Accounting Policies - Basic and Diluted Net Income Per Share (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "lang": null, "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "span", "span", "div", "us-gaap:InvestmentPolicyTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2402405 - Disclosure - Summary of Significant Accounting Policies Other Assets (Details)", "role": "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesOtherAssetsDetails", "shortName": "Summary of Significant Accounting Policies Other Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "us-gaap:InvestmentPolicyTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "irbt:Refundliabilityproductreturns", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408405 - Disclosure - Revenue Recognition Significant Judgments (Details)", "role": "http://www.irobot.com/role/RevenueRecognitionSignificantJudgmentsDetails", "shortName": "Revenue Recognition Significant Judgments (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "irbt:Refundliabilityproductreturns", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408406 - Disclosure - Revenue Recognition Disaggregation of Revenue (Details)", "role": "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails", "shortName": "Revenue Recognition Disaggregation of Revenue (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccountsReceivableNetCurrent", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408407 - Disclosure - Revenue Recognition Contract Balances (Details)", "role": "http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails", "shortName": "Revenue Recognition Contract Balances (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-5", "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent", "reportCount": 1, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409402 - Disclosure - Leases Lease Cost (Details)", "role": "http://www.irobot.com/role/LeasesLeaseCostDetails", "shortName": "Leases Lease Cost (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409403 - Disclosure - Leases Supplemental Cash Flow (Details)", "role": "http://www.irobot.com/role/LeasesSupplementalCashFlowDetails", "shortName": "Leases Supplemental Cash Flow (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "irbt:ScheduleOfLeasesSupplementalCashFlowTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "lang": null, "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409404 - Disclosure - Leases Maturity of Operating Lease LIability (Details)", "role": "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails", "shortName": "Leases Maturity of Operating Lease LIability (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1003000 - Statement - Consolidated Statements of Income Statement", "role": "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "shortName": "Consolidated Statements of Income Statement", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "lang": null, "name": "irbt:Costofproductrevenue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseRightOfUseAsset", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409405 - Disclosure - Leases Financial Statement Impact of Adopting ASC 842 (Details)", "role": "http://www.irobot.com/role/LeasesFinancialStatementImpactOfAdoptingAsc842Details", "shortName": "Leases Financial Statement Impact of Adopting ASC 842 (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "I2019Q1AdoptionASC842", "decimals": "-5", "lang": null, "name": "us-gaap:OperatingLeaseRightOfUseAsset", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2416402 - Disclosure - Inventory (Details)", "role": "http://www.irobot.com/role/InventoryDetails", "shortName": "Inventory (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "ix:continuation", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417402 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail)", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "shortName": "Goodwill, Other Intangible Assets and Other Assets - Additional Information (Detail)", "subGroupType": "details", "uniqueAnchor": null }, "R43": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417403 - Disclosure - Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail)", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail", "shortName": "Goodwill, Other Intangible Assets and Other Assets - Other Intangible Assets (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2018Q4", "decimals": "-3", "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417404 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details)", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails", "shortName": "Goodwill, Other Intangible Assets and Other Assets Schedule of goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfGoodwillTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillAcquiredDuringPeriod", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417405 - Disclosure - Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details)", "role": "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails", "shortName": "Goodwill, Other Intangible Assets and Other Assets Finite-lived intangible assets, schedule of future amortization (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccruedProfessionalFeesCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2418402 - Disclosure - Accrued Expenses (Details)", "role": "http://www.irobot.com/role/AccruedExpensesDetails", "shortName": "Accrued Expenses (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccruedProfessionalFeesCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2419403 - Disclosure - Derivative Instruments Schedule of Derivative Instruments (Details)", "role": "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "shortName": "Derivative Instruments Schedule of Derivative Instruments (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2018Q4_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_DesignatedAsHedgingInstrumentMember", "decimals": "-5", "lang": null, "name": "invest:DerivativeNotionalAmount", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2419404 - Disclosure - Derivative Instruments (Details)", "role": "http://www.irobot.com/role/DerivativeInstrumentsDetails", "shortName": "Derivative Instruments (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R49": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2422401 - Disclosure - Fair Value Measurements Fair Value on a Recurring Basis (Details)", "role": "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails", "shortName": "Fair Value Measurements Fair Value on a Recurring Basis (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1004000 - Statement - Consolidated Statements of Comprehensive Income (Unaudited)", "role": "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "shortName": "Consolidated Statements of Comprehensive Income (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "-3", "lang": null, "name": "us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "I2018Q1RepurchaseDate", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2423402 - Disclosure - Stockholders Equity (Details)", "role": "http://www.irobot.com/role/StockholdersEquityDetails", "shortName": "Stockholders Equity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "I2018Q1RepurchaseDate", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractualObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2424402 - Disclosure - Commitments and Contingencies - Additional Information (Detail)", "role": "http://www.irobot.com/role/CommitmentsAndContingenciesAdditionalInformationDetail", "shortName": "Commitments and Contingencies - Additional Information (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q2", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractualObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q1", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StandardProductWarrantyAccrual", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2424404 - Disclosure - Commitments and Contingencies - Activity Related to Warranty Accrual (Detail)", "role": "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail", "shortName": "Commitments and Contingencies - Activity Related to Warranty Accrual (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2019Q1", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StandardProductWarrantyAccrual", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2426402 - Disclosure - Income Taxes (Details)", "role": "http://www.irobot.com/role/IncomeTaxesDetails", "shortName": "Income Taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "span", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "segment", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2427402 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail)", "role": "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail", "shortName": "Industry Segment, Geographic Information and Significant Customers - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "segment", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "span", "span", "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentPeriodEndDate", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2427403 - Disclosure - Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail)", "role": "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail", "shortName": "Industry Segment, Geographic Information and Significant Customers - Additional Information (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "ix:continuation", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2QTD_srt_MajorCustomersAxis_irbt_AmazonMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember", "decimals": "3", "lang": null, "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesIssued", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1005000 - Statement - Consolidated Statement of Shareholders' Equity Statement", "role": "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "shortName": "Consolidated Statement of Shareholders' Equity Statement", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FI2017Q4_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesIssued", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1006000 - Statement - Consolidated Statements of Cash Flows (Unaudited)", "role": "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited", "shortName": "Consolidated Statements of Cash Flows (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": "-3", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2101100 - Disclosure - Description of Business", "role": "http://www.irobot.com/role/DescriptionOfBusiness", "shortName": "Description of Business", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2102100 - Disclosure - Summary of Significant Accounting Policies", "role": "http://www.irobot.com/role/SummaryOfSignificantAccountingPolicies", "shortName": "Summary of Significant Accounting Policies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "irbt-201962910q.htm", "contextRef": "FD2019Q2YTD", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 33, "tag": { "country_US": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "UNITED STATES", "terseLabel": "UNITED STATES" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2017-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag", "terseLabel": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Area code of city", "label": "City Area Code", "terseLabel": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date", "terseLabel": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus", "terseLabel": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "This is focus fiscal year of the document report in CCYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus", "terseLabel": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentInformationTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package.", "label": "Document Information [Table]", "terseLabel": "Document Information [Table]" } } }, "localname": "DocumentInformationTable", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented. If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.", "label": "Document Period End Date", "terseLabel": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DocumentAndEntityInformation", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail", "http://www.irobot.com/role/LeasesSupplementalCashFlowDetails", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r306" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report", "terseLabel": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r307" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report", "terseLabel": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type", "terseLabel": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One", "terseLabel": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town", "terseLabel": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code", "terseLabel": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province", "terseLabel": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key", "terseLabel": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding", "terseLabel": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status", "terseLabel": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]", "terseLabel": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.irobot.com/role/DocumentAndEntityInformation", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company", "terseLabel": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number", "terseLabel": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category", "terseLabel": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code", "terseLabel": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInformationLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Entity Information [Line Items]", "terseLabel": "Entity Information [Line Items]" } } }, "localname": "EntityInformationLineItems", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r309" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current", "terseLabel": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name", "terseLabel": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company", "terseLabel": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business", "terseLabel": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r308" ], "lang": { "en-US": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number", "terseLabel": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]", "terseLabel": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.irobot.com/role/DocumentAndEntityInformation", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number", "terseLabel": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r304" ], "lang": { "en-US": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security", "terseLabel": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r305" ], "lang": { "en-US": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name", "terseLabel": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol", "terseLabel": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2019-01-31", "presentation": [ "http://www.irobot.com/role/DocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "invest_DerivativeNotionalAmount": { "auth_ref": [ "r310" ], "lang": { "en-US": { "role": { "documentation": "Aggregate notional amount specified by the derivative(s). Expressed as an absolute value.", "label": "Derivative, Notional Amount", "terseLabel": "Derivative, Notional Amount" } } }, "localname": "DerivativeNotionalAmount", "nsuri": "http://xbrl.sec.gov/invest/2013-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "irbt_AccruedDirectFulfillmentCosts": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 5.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Accrued direct fulfillment costs.", "label": "Accrued Direct Fulfillment Costs", "terseLabel": "Accrued direct fulfillment costs" } } }, "localname": "AccruedDirectFulfillmentCosts", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "irbt_AccruedSalesTax": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 6.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Accrued Sales Tax", "label": "Accrued Sales Tax", "terseLabel": "Accrued sales and other taxes payable" } } }, "localname": "AccruedSalesTax", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "irbt_AdjustmentsToAdditionalPaidInCapitalDirectorsDeferredCompensation": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Adjustments to additional paid in capital directors deferred compensation.", "label": "Adjustments to Additional Paid in Capital Directors Deferred Compensation", "terseLabel": "Adjustments to Additional Paid in Capital Directors Deferred Compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalDirectorsDeferredCompensation", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "irbt_AllOtherRegionsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "All Other Regions [Member]", "label": "All Other Regions [Member]", "terseLabel": "All Other Regions [Member]" } } }, "localname": "AllOtherRegionsMember", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "irbt_AmazonMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Amazon [Member]", "label": "Amazon [Member]", "terseLabel": "Amazon [Member]" } } }, "localname": "AmazonMember", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "irbt_AmortizationofIntangibleAssetsNonproduction": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amortization of Intangible Assets, Nonproduction", "label": "Amortization of Intangible Assets, Nonproduction", "terseLabel": "Amortization of acquired intangible assets" } } }, "localname": "AmortizationofIntangibleAssetsNonproduction", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "irbt_Costofproductrevenue": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Cost of product revenue", "label": "Cost of product revenue", "terseLabel": "Cost of product revenue" } } }, "localname": "Costofproductrevenue", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "irbt_DisclosureActivityRelatedToWarrantyAccrualAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure - Activity Related to Warranty Accrual [Abstract]", "label": "Disclosure Activity Related To Warranty Accrual [Abstract]" } } }, "localname": "DisclosureActivityRelatedToWarrantyAccrualAbstract", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail" ], "xbrltype": "stringItemType" }, "irbt_DisclosureBasicAndDilutedNetIncomePerShareAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure - Basic and Diluted Net Income Per Share [Abstract]", "label": "Disclosure Basic And Diluted Net Income Per Share [Abstract]" } } }, "localname": "DisclosureBasicAndDilutedNetIncomePerShareAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_DisclosureGoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure - Goodwill, Other Intangible Assets and Other Assets - Additional Information [Abstract]", "label": "Disclosure Goodwill Other Intangible Assets And Other Assets Additional Information [Abstract]" } } }, "localname": "DisclosureGoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationAbstract", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "irbt_DisclosureOtherIntangibleAssetsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure Other Intangible Assets [Abstract]", "label": "Disclosure Other Intangible Assets [Abstract]" } } }, "localname": "DisclosureOtherIntangibleAssetsAbstract", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "irbt_DisclosureSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure - Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes [Abstract]", "label": "Disclosure Segment Information About Revenue Cost Of Revenue Gross Margin And Income Before Income Taxes [Abstract]" } } }, "localname": "DisclosureSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_DocumentDocumentandEntityInformationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Document Documentand Entity Information [Abstract]", "label": "Document Documentand Entity Information [Abstract]" } } }, "localname": "DocumentDocumentandEntityInformationAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_EquityandcostmethodinvestmentsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Equity and cost method investments [Abstract]", "label": "Equity and cost method investments [Abstract]" } } }, "localname": "EquityandcostmethodinvestmentsAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_FairValueFootnoteAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Fair Value Footnote [Abstract]", "label": "Fair Value Footnote [Abstract]" } } }, "localname": "FairValueFootnoteAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_Finitelivedintangibleassetsfutureamortizationtotal": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Finite-lived intangible assets, future amortization total", "label": "Finite-lived intangible assets, future amortization total", "terseLabel": "Total" } } }, "localname": "Finitelivedintangibleassetsfutureamortizationtotal", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "irbt_FinitelivedintangibleassetsscheduleofamortizationexpenseLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "[Line Items] for Finite-lived intangible assets, schedule of amortization expense [Table]", "label": "Finite-lived intangible assets, schedule of amortization expense [Line Items]", "terseLabel": "Finite-lived intangible assets, schedule of amortization expense [Line Items]" } } }, "localname": "FinitelivedintangibleassetsscheduleofamortizationexpenseLineItems", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "stringItemType" }, "irbt_FinitelivedintangibleassetsscheduleofamortizationexpenseTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Finite-lived intangible assets, schedule of amortization expense [Table]", "label": "Finite-lived intangible assets, schedule of amortization expense [Table]", "terseLabel": "Finite-lived intangible assets, schedule of amortization expense [Table]" } } }, "localname": "FinitelivedintangibleassetsscheduleofamortizationexpenseTable", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "stringItemType" }, "irbt_OperatingLeaseCostAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Operating Lease Cost [Abstract]", "label": "Operating Lease Cost [Abstract]" } } }, "localname": "OperatingLeaseCostAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_OutstandingPOsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Outstanding POs [Abstract]", "label": "Outstanding POs [Abstract]" } } }, "localname": "OutstandingPOsAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_Refundliabilityothercreditsandincentives": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Refund liability, other credits and incentives", "label": "Refund liability, other credits and incentives", "terseLabel": "Refund liability, other credits and incentives" } } }, "localname": "Refundliabilityothercreditsandincentives", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionSignificantJudgmentsDetails" ], "xbrltype": "monetaryItemType" }, "irbt_Refundliabilityproductreturns": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Refund liability, product returns", "label": "Refund liability, product returns", "terseLabel": "Refund liability, product returns" } } }, "localname": "Refundliabilityproductreturns", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionSignificantJudgmentsDetails" ], "xbrltype": "monetaryItemType" }, "irbt_ReturnsreserveadjustmentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Returns reserve adjustment [Abstract]", "label": "Returns reserve adjustment [Abstract]" } } }, "localname": "ReturnsreserveadjustmentAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_ScheduleOfComputationOfBasicAndDilutedEarningsPerCommonShareLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items]", "label": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items]", "terseLabel": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Line Items]" } } }, "localname": "ScheduleOfComputationOfBasicAndDilutedEarningsPerCommonShareLineItems", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "irbt_ScheduleOfComputationOfBasicAndDilutedEarningsPerCommonShareTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table]", "label": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table]", "terseLabel": "Schedule Of Computation Of Basic And Diluted Earnings Per Common Share [Table]" } } }, "localname": "ScheduleOfComputationOfBasicAndDilutedEarningsPerCommonShareTable", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "irbt_ScheduleOfLeasesSupplementalCashFlowTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "ScheduleOfLeasesSupplementalCashFlow [Table Text Block]", "label": "ScheduleOfLeasesSupplementalCashFlow [Table Text Block]", "terseLabel": "ScheduleOfLeasesSupplementalCashFlow [Table Text Block]" } } }, "localname": "ScheduleOfLeasesSupplementalCashFlowTableTextBlock", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/LeasesTables" ], "xbrltype": "textBlockItemType" }, "irbt_ScheduleofDerivativeInstrumentsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Schedule of Derivative Instruments [Abstract]", "label": "Schedule of Derivative Instruments [Abstract]" } } }, "localname": "ScheduleofDerivativeInstrumentsAbstract", "nsuri": "http://www.irobot.com/20190629", "xbrltype": "stringItemType" }, "irbt_StockWithheldToCoverTaxWithholdingRequirementsUponVestingToRestrictedStockUnitsAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Stock withheld to Cover tax withholding requirements Upon Vesting to restricted Stock Units.", "label": "Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount", "terseLabel": "Stock Withheld to Cover Tax Withholding Requirements Upon Vesting to Restricted Stock Units Amount" } } }, "localname": "StockWithheldToCoverTaxWithholdingRequirementsUponVestingToRestrictedStockUnitsAmount", "nsuri": "http://www.irobot.com/20190629", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "srt_ConsolidationItemsAxis": { "auth_ref": [ "r129", "r138" ], "lang": { "en-US": { "role": { "label": "Consolidation Items [Axis]", "terseLabel": "Consolidation Items [Axis]" } } }, "localname": "ConsolidationItemsAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "srt_ConsolidationItemsDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Consolidation Items [Domain]", "terseLabel": "Consolidation Items [Domain]" } } }, "localname": "ConsolidationItemsDomain", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "domainItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r141", "r188", "r193" ], "lang": { "en-US": { "role": { "label": "Customer [Axis]", "terseLabel": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Customer [Domain]", "terseLabel": "Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r139", "r188", "r191", "r299" ], "lang": { "en-US": { "role": { "label": "Product and Service [Axis]", "terseLabel": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Product and Service [Domain]", "terseLabel": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Range [Axis]", "terseLabel": "Range [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Range [Domain]", "terseLabel": "Range [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "domainItemType" }, "srt_RestatementAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Restatement [Axis]", "terseLabel": "Restatement [Axis]" } } }, "localname": "RestatementAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "stringItemType" }, "srt_RestatementDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Restatement [Domain]", "terseLabel": "Restatement [Domain]" } } }, "localname": "RestatementDomain", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "domainItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Geographical [Domain]", "terseLabel": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r140", "r188", "r192", "r301", "r302" ], "lang": { "en-US": { "role": { "label": "Geographical [Axis]", "terseLabel": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r35" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.", "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]", "terseLabel": "Accrued Expenses" } } }, "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpenses" ], "xbrltype": "textBlockItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r34" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounts Payable, Current [Abstract]", "terseLabel": "Accounts Payable, Current [Abstract]" } } }, "localname": "AccountsPayableCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r21", "r189" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount due from customers or clients, within one year of the balance sheet date (or the normal operating cycle, whichever is longer), for goods or services (including trade receivables) that have been delivered or sold in the normal course of business, reduced to the estimated net realizable fair value by an allowance established by the entity of the amount it deems uncertain of collection.", "label": "Accounts Receivable, Net, Current", "terseLabel": "Accounts receivable, net", "verboseLabel": "Accounts Receivable, Net, Current" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedBonusesCurrentAndNoncurrent": { "auth_ref": [ "r284", "r295" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 3.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements.", "label": "Accrued Bonuses", "terseLabel": "Accrued bonus" } } }, "localname": "AccruedBonusesCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedEmployeeBenefitsCurrentAndNoncurrent": { "auth_ref": [ "r284", "r295" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 1.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations, excluding pension and other postretirement benefits, incurred through that date and payable for perquisites provided to employees pertaining to services received from them.", "label": "Accrued Employee Benefits", "terseLabel": "Accrued Employee Benefits" } } }, "localname": "AccruedEmployeeBenefitsCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxes": { "auth_ref": [ "r14", "r17", "r209", "r282", "r290" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 7.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due. This amount is the total of current and noncurrent accrued income taxes.", "label": "Accrued Income Taxes", "terseLabel": "Accrued federal and state income taxes" } } }, "localname": "AccruedIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r38" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "terseLabel": "Accrued expenses", "totalLabel": "Accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails", "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accrued Liabilities, Current [Abstract]" } } }, "localname": "AccruedLiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccruedLiabilitiesMember": { "auth_ref": [ "r38" ], "lang": { "en-US": { "role": { "documentation": "This item represents obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered.", "label": "Accrued Liabilities [Member]", "terseLabel": "Accrued Liabilities [Member]" } } }, "localname": "AccruedLiabilitiesMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccruedProfessionalFeesCurrent": { "auth_ref": [ "r5", "r6", "r38" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 8.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Professional Fees, Current", "terseLabel": "Accrued Professional Fees, Current" } } }, "localname": "AccruedProfessionalFeesCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r50", "r51", "r52" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r49", "r52", "r55", "r222" ], "lang": { "en-US": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "AOCI Attributable to Parent [Member]", "terseLabel": "AOCI Attributable to Parent [Member]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r22" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]", "terseLabel": "Additional Paid-in Capital [Member]" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": { "auth_ref": [ "r100" ], "lang": { "en-US": { "role": { "documentation": "Information by type of change in accounting principle. Does not include error corrections.", "label": "Adjustments for Change in Accounting Principle [Axis]", "terseLabel": "Adjustments for Change in Accounting Principle [Axis]" } } }, "localname": "AdjustmentsForChangeInAccountingPrincipleAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsForErrorCorrectionDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Represents the types error corrections made to the financial statements.", "label": "Adjustments for Error Correction [Domain]", "terseLabel": "Adjustments for Error Correction [Domain]" } } }, "localname": "AdjustmentsForErrorCorrectionDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": { "auth_ref": [ "r100" ], "lang": { "en-US": { "role": { "documentation": "Information by new accounting pronouncement.", "label": "Adjustments for New Accounting Pronouncements [Axis]", "terseLabel": "Adjustments for New Accounting Pronouncements [Axis]" } } }, "localname": "AdjustmentsForNewAccountingPronouncementsAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r199", "r200", "r202", "r203" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) from recognition of equity-based compensation.", "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition", "terseLabel": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities, net of the effects of acquisition:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r86", "r158", "r163" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of Intangible Assets", "terseLabel": "Amortization of Acquired Intangible Assets" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r111" ], "lang": { "en-US": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_Assets": { "auth_ref": [ "r132", "r281", "r289" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r3", "r4", "r45" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsFairValueDisclosure": { "auth_ref": [ "r249" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Fair value portion of probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Fair Value Disclosure", "terseLabel": "Assets, Fair Value Disclosure" } } }, "localname": "AssetsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecurities": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of investment in debt and equity securities categorized neither as held-to-maturity nor trading.", "label": "Available-for-sale Securities", "terseLabel": "Available-for-sale Securities" } } }, "localname": "AvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesAmortizedCost": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "This item represents the cost of debt and equity securities, which are categorized neither as held-to-maturity nor trading, net of adjustments including accretion, amortization, collection of cash, previous other-than-temporary impairments recognized in earnings (less any cumulative-effect adjustments recognized, as defined), and fair value hedge accounting adjustments, if any.", "label": "Available-for-sale Securities, Amortized Cost Basis", "terseLabel": "Available-for-sale Securities, Amortized Cost Basis" } } }, "localname": "AvailableForSaleSecuritiesAmortizedCost", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesCurrent": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of investment in debt and equity securities categorized neither as trading securities nor held-to-maturity securities and intended be sold or mature one year or operating cycle, if longer.", "label": "Available-for-sale Securities, Current", "terseLabel": "Short term investments" } } }, "localname": "AvailableForSaleSecuritiesCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]", "terseLabel": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r230", "r233" ], "lang": { "en-US": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]", "terseLabel": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]", "terseLabel": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r213", "r214" ], "lang": { "en-US": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]", "terseLabel": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Business Acquisition [Line Items]", "terseLabel": "Business Acquisition [Line Items]" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r1", "r32", "r88" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and Cash Equivalents, at Carrying Value", "periodEndLabel": "Cash and cash equivalents, at end of period", "periodStartLabel": "Cash and cash equivalents, at beginning of period", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash and Cash Equivalents, Fair Value Disclosure", "terseLabel": "Cash and Cash Equivalents, Fair Value Disclosure" } } }, "localname": "CashAndCashEquivalentsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Includes effect from exchange rate changes.", "label": "Cash and Cash Equivalents, Period Increase (Decrease)", "totalLabel": "Net increase (decrease) in cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsPeriodIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashFlowHedgingMember": { "auth_ref": [ "r226" ], "lang": { "en-US": { "role": { "documentation": "Hedge of the exposure to variability in the cash flows of a recognized asset or liability, or of a forecasted transaction, that is attributable to a particular risk.", "label": "Cash Flow Hedging [Member]", "terseLabel": "Cash Flow Hedging [Member]" } } }, "localname": "CashFlowHedgingMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ChangeInAccountingPrincipleMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A change from one generally accepted accounting principle to another generally accepted accounting principle when there are two or more generally accepted accounting principles that apply or when the accounting principle formerly used is no longer generally accepted. A change in the method of applying an accounting principle that is not treated as a change in accounting estimate also is considered a change in accounting principle.", "label": "Adjustments for Change in Accounting Principle [Domain]", "terseLabel": "Adjustments for Change in Accounting Principle [Domain]" } } }, "localname": "ChangeInAccountingPrincipleMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_ClassOfStockDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock.", "label": "Class of Stock [Domain]", "terseLabel": "Class of Stock [Domain]" } } }, "localname": "ClassOfStockDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r41", "r173", "r285", "r294" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies (Note 11)" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r172", "r174" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common Stock [Member]" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r20" ], "lang": { "en-US": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r20" ], "lang": { "en-US": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r20" ], "lang": { "en-US": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued", "verboseLabel": "Beginning Balance, Shares" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r20", "r179" ], "lang": { "en-US": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r20" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common stock, $0.01 par value, 100,000 shares authorized; 28,123 and 27,788 shares issued and outstanding, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r58", "r60", "r61" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Total comprehensive income" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r121", "r122", "r259", "r260" ], "lang": { "en-US": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]", "terseLabel": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r121", "r122", "r259", "r260", "r300" ], "lang": { "en-US": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]", "terseLabel": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r121", "r122", "r259", "r260", "r300" ], "lang": { "en-US": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]", "terseLabel": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r121", "r122", "r259", "r260" ], "lang": { "en-US": { "role": { "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.", "label": "Concentration Risk, Percentage", "terseLabel": "Concentration Risk, Percentage" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r121", "r122", "r259", "r260" ], "lang": { "en-US": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]", "terseLabel": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r185" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of contract balances and changes in contract balances.", "label": "Contract with Customer, Asset and Liability [Table Text Block]", "terseLabel": "Contract with Customer, Asset and Liability [Table Text Block]" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionContractBalancesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r182", "r183", "r189" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Contract with Customer, Liability", "terseLabel": "Contract with Customer, Liability" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r190" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Contract with Customer, Liability, Revenue Recognized" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractualObligation": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of contractual obligation, including but not limited to, long-term debt, capital lease obligations, operating lease obligations, purchase obligations, and other commitments.", "label": "Contractual Obligation", "terseLabel": "Contractual Obligation" } } }, "localname": "ContractualObligation", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesAdditionalInformationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConvertibleDebtFairValueDisclosures": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Fair value portion of borrowing which can be exchanged for a specified number of another security at the option of the issuer or the holder, for example, but not limited to, the entity's common stock.", "label": "Convertible Debt, Fair Value Disclosures", "terseLabel": "Convertible Debt, Fair Value Disclosures" } } }, "localname": "ConvertibleDebtFairValueDisclosures", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r70" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost of Goods and Services Sold", "terseLabel": "Total cost of revenue" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSoldAmortization": { "auth_ref": [ "r67" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of expense for allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.", "label": "Cost, Amortization", "terseLabel": "Amortization of acquired intangible assets" } } }, "localname": "CostOfGoodsAndServicesSoldAmortization", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]", "verboseLabel": "Cost of revenue" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CreationDateAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information about two or more restatements of a single financial reporting concept where restated amounts have been reported in a prior filing.", "label": "Report Date [Axis]", "terseLabel": "Report Date [Axis]" } } }, "localname": "CreationDateAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "stringItemType" }, "us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) to equity or (increase) decrease to net assets, resulting from the cumulative effect adjustment of a new accounting principle applied in the period of adoption.", "label": "Cumulative Effect of New Accounting Principle in Period of Adoption", "terseLabel": "Cumulative Effect of New Accounting Principle in Period of Adoption" } } }, "localname": "CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r120" ], "lang": { "en-US": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer Concentration Risk [Member]" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerRelatedIntangibleAssetsMember": { "auth_ref": [ "r215" ], "lang": { "en-US": { "role": { "documentation": "Customer-related asset, including, but not limited to, customer lists, and noncontractual customer relationships.", "label": "Customer-Related Intangible Assets [Member]", "terseLabel": "Customer-Related Intangible Assets [Member]" } } }, "localname": "CustomerRelatedIntangibleAssetsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_DefaultFinancialStatementsDateMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Date the financial statement was made available and submitted, in CCYY-MM-DD format.", "label": "Financial Statement Filing Date [Domain]", "terseLabel": "Financial Statement Filing Date [Domain]" } } }, "localname": "DefaultFinancialStatementsDateMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r206", "r210" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "terseLabel": "Deferred tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenue": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of deferred revenue as of balance sheet date. Deferred revenue represents collections of cash or other assets related to a revenue producing activity for which revenue has not yet been recognized. Generally, an entity records deferred revenue when it receives consideration from a customer before achieving certain criteria that must be met for revenue to be recognized in conformity with GAAP.", "label": "Deferred Revenue", "terseLabel": "Deferred revenue and customer advances" } } }, "localname": "DeferredRevenue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsLiabilitiesNetNoncurrent": { "auth_ref": [ "r205", "r206", "r210" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting and classified as noncurrent.", "label": "Deferred Tax Assets, Net, Noncurrent", "terseLabel": "Deferred tax assets" } } }, "localname": "DeferredTaxAssetsLiabilitiesNetNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r86", "r130" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation, Depletion and Amortization", "terseLabel": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeAssets": { "auth_ref": [ "r46", "r47", "r258" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.", "label": "Derivative Asset", "terseLabel": "Derivative Asset" } } }, "localname": "DerivativeAssets", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeContractTypeDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset.", "label": "Derivative Contract [Domain]", "terseLabel": "Derivative Contract [Domain]" } } }, "localname": "DerivativeContractTypeDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_DerivativeInstrumentRiskAxis": { "auth_ref": [ "r231", "r232", "r237", "r240" ], "lang": { "en-US": { "role": { "documentation": "Information by type of derivative contract.", "label": "Derivative Instrument [Axis]", "terseLabel": "Derivative Instrument [Axis]", "verboseLabel": "Derivative, by Nature [Axis]" } } }, "localname": "DerivativeInstrumentRiskAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]" } } }, "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": { "auth_ref": [ "r247" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts.", "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]", "terseLabel": "Derivative Instruments and Hedging Activities Disclosure [Text Block]" } } }, "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis": { "auth_ref": [ "r227", "r231", "r237" ], "lang": { "en-US": { "role": { "documentation": "Information by type of hedging relationship.", "label": "Hedging Relationship [Axis]", "terseLabel": "Hedging Relationship [Axis]" } } }, "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": { "auth_ref": [ "r227", "r231", "r237", "r240", "r241", "r244", "r245" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments.", "label": "Derivative Instruments, Gain (Loss) [Table]", "terseLabel": "Derivative Instruments, Gain (Loss) [Table]" } } }, "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsGainLossLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Derivative Instruments, Gain (Loss) [Line Items]", "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]" } } }, "localname": "DerivativeInstrumentsGainLossLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet": { "auth_ref": [ "r235", "r239" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The effective portion of net gain (loss) reclassified from accumulated other comprehensive income into income on derivative instruments designated and qualifying as hedging instruments.", "label": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net", "terseLabel": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net" } } }, "localname": "DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet": { "auth_ref": [ "r236", "r238" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of realized and unrealized gain (loss) of derivative instruments not designated or qualifying as hedging instruments.", "label": "Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net", "terseLabel": "Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net" } } }, "localname": "DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeLiabilities": { "auth_ref": [ "r46", "r47", "r258" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities not subject to a master netting arrangement and not elected to be offset.", "label": "Derivative Liability", "terseLabel": "Derivative Liability" } } }, "localname": "DerivativeLiabilities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Derivative [Line Items]", "terseLabel": "Derivative [Line Items]" } } }, "localname": "DerivativeLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeTable": { "auth_ref": [ "r96", "r223", "r224", "r225", "r227", "r229", "r234", "r237", "r242", "r243", "r245" ], "lang": { "en-US": { "role": { "documentation": "Schedule that describes and identifies a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item.", "label": "Derivative [Table]", "terseLabel": "Derivative [Table]" } } }, "localname": "DerivativeTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DesignatedAsHedgingInstrumentMember": { "auth_ref": [ "r227" ], "lang": { "en-US": { "role": { "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).", "label": "Designated as Hedging Instrument [Member]", "terseLabel": "Designated as Hedging Instrument [Member]" } } }, "localname": "DesignatedAsHedgingInstrumentMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Disaggregation of Revenue [Line Items]" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]", "terseLabel": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r188" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Disaggregation of Revenue [Table Text Block]" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DistributionRightsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Legal rights, generally of a limited duration, to distribute a product or products, often within specific geographic areas or supply channels.", "label": "Distribution Rights [Member]", "terseLabel": "Distribution Rights [Member]" } } }, "localname": "DistributionRightsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_EMEAMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Regions of Europe, Middle East and Africa.", "label": "EMEA [Member]", "terseLabel": "EMEA [Member]" } } }, "localname": "EMEAMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r66", "r101", "r107", "r108", "r109", "r110", "r114", "r288", "r297" ], "lang": { "en-US": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "terseLabel": "Basic", "verboseLabel": "Basic income per share" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r66", "r101", "r107", "r108", "r109", "r110", "r114", "r288", "r297" ], "lang": { "en-US": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted", "verboseLabel": "Diluted income per share" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerSharePolicyTextBlock": { "auth_ref": [ "r93", "r111", "r112", "r113" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.", "label": "Earnings Per Share, Policy [Policy Text Block]", "terseLabel": "Net Income Per Share" } } }, "localname": "EarningsPerSharePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents": { "auth_ref": [ "r261" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 4.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) from the effect of exchange rate changes on cash and cash equivalent balances held in foreign currencies.", "label": "Effect of Exchange Rate on Cash and Cash Equivalents", "terseLabel": "Effect of exchange rate changes on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashAndCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r95", "r207", "r208" ], "lang": { "en-US": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective Income Tax Rate Reconciliation, Percent", "terseLabel": "Effective Income Tax Rate Reconciliation, Percent" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IncomeTaxesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EnergyAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by type of energy source.", "label": "Energy [Axis]", "terseLabel": "Energy [Axis]" } } }, "localname": "EnergyAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_EnergyDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Combustible material used to power engines, power plants or reactors. Examples include, but are not limited to, fuel and oil.", "label": "Energy [Domain]", "terseLabel": "Energy [Domain]" } } }, "localname": "EnergyDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Equity [Abstract]" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r179" ], "lang": { "en-US": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]", "terseLabel": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": { "auth_ref": [ "r147" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of investment in equity security without readily determinable fair value.", "label": "Equity Securities without Readily Determinable Fair Value, Amount", "terseLabel": "Equity Securities without Readily Determinable Fair Value, Amount" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesOtherAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis": { "auth_ref": [ "r102", "r103", "r104" ], "lang": { "en-US": { "role": { "documentation": "Information by type of error correction.", "label": "Adjustments for Error Corrections [Axis]", "terseLabel": "Adjustments for Error Corrections [Axis]" } } }, "localname": "ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "auth_ref": [ "r248", "r249", "r250", "r251", "r255", "r256" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about financial instruments measured at fair value, including those classified in shareholders' equity measured on a recurring or nonrecurring basis. Disclosures include, but are not limited to, fair value measurements recorded and the reasons for the measurements, level within the fair value hierarchy in which the fair value measurements are categorized and transfers between levels 1 and 2. Nonrecurring fair value measurements are those that are required or permitted in the statement of financial position in particular circumstances.", "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]", "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r195", "r196", "r197", "r250", "r275" ], "lang": { "en-US": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]", "terseLabel": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "auth_ref": [ "r248" ], "lang": { "en-US": { "role": { "documentation": "Information by measurement frequency.", "label": "Measurement Frequency [Axis]", "terseLabel": "Measurement Frequency [Axis]" } } }, "localname": "FairValueByMeasurementFrequencyAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Fair Value Disclosures [Abstract]" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r257" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]", "terseLabel": "Fair Value Disclosures [Text Block]" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r195", "r196", "r197", "r250", "r276" ], "lang": { "en-US": { "role": { "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.", "label": "Fair Value, Inputs, Level 1 [Member]", "terseLabel": "Fair Value, Inputs, Level 1 [Member]" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r195", "r196", "r197", "r250", "r277" ], "lang": { "en-US": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Fair Value, Inputs, Level 2 [Member]", "terseLabel": "Fair Value, Inputs, Level 2 [Member]" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r195", "r196", "r197", "r250", "r278" ], "lang": { "en-US": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Inputs, Level 3 [Member]", "terseLabel": "Fair Value, Inputs, Level 3 [Member]" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementFrequencyDomain": { "auth_ref": [ "r248", "r254" ], "lang": { "en-US": { "role": { "documentation": "Provides the general categories used to describe the frequency with which financial assets and liabilities (as defined) are measured at fair value (on a recurring or nonrecurring basis).", "label": "Fair Value, Measurement Frequency [Domain]", "terseLabel": "Fair Value, Measurement Frequency [Domain]" } } }, "localname": "FairValueMeasurementFrequencyDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements": { "auth_ref": [ "r253" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of settlement of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Settlements", "negatedTerseLabel": "conversion of debt" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetSettlements", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue": { "auth_ref": [ "r252" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Fair value of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value", "terseLabel": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]", "terseLabel": "Fair Value Hierarchy and NAV [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsRecurringMember": { "auth_ref": [ "r248", "r254" ], "lang": { "en-US": { "role": { "documentation": "This item represents a description of the frequency with which certain items are measured at fair value. Items measured at fair value on a recurring basis generally include those items for which measurement inputs are readily available and which are measured at fair value at successive reporting periods.", "label": "Fair Value, Measurements, Recurring [Member]", "terseLabel": "Fair Value, Measurements, Recurring [Member]" } } }, "localname": "FairValueMeasurementsRecurringMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r162" ], "calculation": { "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "terseLabel": "Intangible assets accumulated amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, after Year Five", "terseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized in the remainder of the fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Remainder of Fiscal Year", "terseLabel": "Remainder of 2018" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r164" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Five", "terseLabel": "2022" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r164" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Four", "terseLabel": "2021" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r164" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three", "terseLabel": "2020" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r164" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two", "terseLabel": "2019" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r159", "r160", "r162", "r165", "r279" ], "lang": { "en-US": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r162", "r279" ], "calculation": { "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Finite-Lived Intangible Assets, Gross" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Finite-Lived Intangible Assets [Line Items]" } } }, "localname": "FiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r159", "r161" ], "lang": { "en-US": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r162" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "totalLabel": "Intangible Assets, Net", "verboseLabel": "Intangible assets, net" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignExchangeForwardMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Foreign exchange forward traded on an exchange (examples include but are not limited to the International Securities Exchange, Philadelphia Stock Exchange, or the Chicago Mercantile Exchange) for options or future contracts to buy or sell a certain currency, at a specified date, at a fixed exercise exchange rate.", "label": "Foreign Exchange Forward [Member]", "terseLabel": "Foreign Exchange Forward [Member]" } } }, "localname": "ForeignExchangeForwardMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GeneralAndAdministrativeExpense": { "auth_ref": [ "r71" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.", "label": "General and Administrative Expense", "terseLabel": "General and administrative", "verboseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r152", "r153" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r154" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.", "label": "Goodwill, Acquired During Period", "terseLabel": "Goodwill, Acquired During Period" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r166" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for goodwill and intangible assets.", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "Goodwill, Other Intangible Assets and Other Assets" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssets" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "auth_ref": [ "r155" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Foreign Currency Translation Gain (Loss)", "terseLabel": "Goodwill, Foreign Currency Translation Gain (Loss)" } } }, "localname": "GoodwillForeignCurrencyTranslationGainLoss", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Goodwill [Line Items]", "terseLabel": "Goodwill [Line Items]" } } }, "localname": "GoodwillLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r69" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "terseLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_HedgingDesignationAxis": { "auth_ref": [ "r227", "r241" ], "lang": { "en-US": { "role": { "documentation": "Information by designation of purpose of derivative instrument.", "label": "Hedging Designation [Axis]", "terseLabel": "Hedging Designation [Axis]" } } }, "localname": "HedgingDesignationAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_HedgingDesignationDomain": { "auth_ref": [ "r227" ], "lang": { "en-US": { "role": { "documentation": "Designation of purpose of derivative instrument.", "label": "Hedging Designation [Domain]", "terseLabel": "Hedging Designation [Domain]" } } }, "localname": "HedgingDesignationDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_HedgingRelationshipDomain": { "auth_ref": [ "r227" ], "lang": { "en-US": { "role": { "documentation": "Nature or intent of a hedge.", "label": "Hedging Relationship [Domain]", "terseLabel": "Hedging Relationship [Domain]" } } }, "localname": "HedgingRelationshipDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r64", "r101", "r280", "r286", "r298" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "terseLabel": "Income before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r168" ], "lang": { "en-US": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]", "terseLabel": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]", "terseLabel": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails", "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r212" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Income Tax Disclosure [Text Block]" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IncomeTaxesNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r94", "r131", "r211" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "terseLabel": "Income tax (benefit) expense" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaid": { "auth_ref": [ "r83", "r89" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.", "label": "Income Taxes Paid", "terseLabel": "Cash paid for income taxes" } } }, "localname": "IncomeTaxesPaid", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", "label": "Increase (Decrease) in Accounts Payable", "terseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedTerseLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa.", "label": "Increase (Decrease) in Deferred Income Taxes", "negatedTerseLabel": "Deferred income taxes, net" } } }, "localname": "IncreaseDecreaseInDeferredIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventory" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in operating assets and liabilities \u2014 (use) source" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherAccruedLiabilities": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in other expenses incurred but not yet paid.", "label": "Increase (Decrease) in Other Accrued Liabilities", "terseLabel": "Accrued expenses and other liabilities" } } }, "localname": "IncreaseDecreaseInOtherAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in operating assets classified as other.", "label": "Increase (Decrease) in Other Operating Assets", "negatedLabel": "Other current assets" } } }, "localname": "IncreaseDecreaseInOtherOperatingAssets", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r151" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.", "label": "Inventory Disclosure [Text Block]", "terseLabel": "Inventory" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/Inventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoodsNetOfReserves": { "auth_ref": [ "r27", "r150" ], "calculation": { "http://www.irobot.com/role/InventoryDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.", "label": "Inventory, Finished Goods, Net of Reserves", "terseLabel": "Inventory, Finished Goods, Net of Reserves" } } }, "localname": "InventoryFinishedGoodsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/InventoryDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r2", "r43", "r149" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://www.irobot.com/role/InventoryDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "terseLabel": "Inventory", "totalLabel": "Inventory" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/InventoryDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryRawMaterialsNetOfReserves": { "auth_ref": [ "r28", "r150" ], "calculation": { "http://www.irobot.com/role/InventoryDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.", "label": "Inventory, Raw Materials, Net of Reserves", "terseLabel": "Inventory, Raw Materials, Net of Reserves" } } }, "localname": "InventoryRawMaterialsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/InventoryDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentPolicyTextBlock": { "auth_ref": [ "r37", "r93", "r145", "r146", "r148" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for investments in financial assets, including marketable securities (debt and equity securities with readily determinable fair values), investments accounted for under the equity method and cost method, securities borrowed and loaned, and repurchase and resale agreements. For marketable securities, the disclosure may include the entity's accounting treatment for transfers between investment categories and how the fair values for such securities are determined. Also, for all investments, an entity may describe its policy for assessing, recognizing and measuring impairment of the investment.", "label": "Investment, Policy [Policy Text Block]", "terseLabel": "Investment, Policy [Policy Text Block]" } } }, "localname": "InvestmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r271", "r273" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "Lease, Cost", "terseLabel": "Lease, Cost" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r271" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.", "label": "Lease, Cost [Table Text Block]", "terseLabel": "Lease, Cost [Table Text Block]" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeasesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Leases [Abstract]" } } }, "localname": "LeasesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r272" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.", "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Payments, Due", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fifth fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Due after Year Five", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due after Year Five" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fifth fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Five", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due Year Five" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fourth fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Four", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due Year Four" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due in third fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Three", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due Year Three" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due in second fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Two", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due Year Two" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease having an initial or remaining lease term in excess of one year due in remainder of fiscal year following latest fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year", "terseLabel": "Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "terseLabel": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeasesTextBlock": { "auth_ref": [ "r274" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.", "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "Lessee, Operating Leases [Text Block]" } } }, "localname": "LesseeOperatingLeasesTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r36" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r26", "r283", "r292" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders\u2019 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES, REDEEMABLE CONVERTIBLE PREFERRED STOCK AND STOCKHOLDERS' EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r39" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesFairValueDisclosure": { "auth_ref": [ "r249" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Fair value of financial and nonfinancial obligations.", "label": "Financial and Nonfinancial Liabilities, Fair Value Disclosure", "terseLabel": "Financial and Nonfinancial Liabilities, Fair Value Disclosure" } } }, "localname": "LiabilitiesFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/FairValueMeasurementsFairValueOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesNoncurrent": { "auth_ref": [ "r9", "r10", "r11", "r15", "r16" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer.", "label": "Liabilities, Noncurrent", "totalLabel": "Total long-term liabilities" } } }, "localname": "LiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Movement in Standard Product Warranty Accrual [Roll Forward]", "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]" } } }, "localname": "MovementInStandardProductWarrantyAccrualRollForward", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail" ], "xbrltype": "stringItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r115", "r126" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations [Text Block]", "terseLabel": "Description of Business" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DescriptionOfBusiness" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r82" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 3.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash used in financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "Cash flows from financing activities:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r82" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 2.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "Cash flows from investing activities:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r82", "r84", "r87" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 1.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Cash flows from operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r56", "r59", "r65", "r87", "r112", "r287", "r296" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 }, "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "terseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited", "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recent Accounting Pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NoncashOrPartNoncashAcquisitionFixedAssetsAcquired1": { "auth_ref": [ "r90", "r91", "r92" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The amount of fixed assets that an Entity acquires in a noncash (or part noncash) acquisition. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Noncash or Part Noncash Acquisition, Fixed Assets Acquired", "terseLabel": "Additions of property and equipment included in accounts payable" } } }, "localname": "NoncashOrPartNoncashAcquisitionFixedAssetsAcquired1", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r217" ], "lang": { "en-US": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Noncompete Agreements [Member]", "terseLabel": "Noncompete Agreements [Member]" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_NondesignatedMember": { "auth_ref": [ "r227" ], "lang": { "en-US": { "role": { "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).", "label": "Not Designated as Hedging Instrument [Member]", "terseLabel": "Not Designated as Hedging Instrument [Member]" } } }, "localname": "NondesignatedMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r72" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "terseLabel": "Other income, net", "verboseLabel": "Other income, net" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.", "label": "Number of Reportable Segments", "terseLabel": "Number of Reportable Segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingExpenseMember": { "auth_ref": [ "r239" ], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing expenses associated with normal operations.", "label": "Operating Expense [Member]", "terseLabel": "Operating Expense [Member]" } } }, "localname": "OperatingExpenseMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsFiniteLivedIntangibleAssetsScheduleOfFutureAmortizationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "terseLabel": "Total operating expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "terseLabel": "Operating income" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r265", "r273" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.", "label": "Operating Lease, Cost", "terseLabel": "Operating Lease, Cost" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r263" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "terseLabel": "Operating Lease, Liability" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesFinancialStatementImpactOfAdoptingAsc842Details", "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r263" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 4.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Operating Lease, Liability, Current" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails", "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r263" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Operating lease liabilities", "verboseLabel": "Operating Lease, Liability, Noncurrent" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/LeasesMaturityOfOperatingLeaseLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r264", "r267" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Operating Lease, Payments" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesSupplementalCashFlowDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r262" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease right-of-use assets", "verboseLabel": "Operating lease right-of-use asset" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/LeasesFinancialStatementImpactOfAdoptingAsc842Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r270", "r273" ], "lang": { "en-US": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Operating Lease, Weighted Average Discount Rate, Percent" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesLeaseCostDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r269", "r273" ], "lang": { "en-US": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Operating Lease, Weighted Average Remaining Lease Term" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesLeaseCostDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "auth_ref": [ "r5", "r6", "r7", "r38" ], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 9.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Accrued Liabilities, Current", "terseLabel": "Accrued other" } } }, "localname": "OtherAccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsCurrent": { "auth_ref": [ "r44" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current assets classified as other.", "label": "Other Assets, Current", "terseLabel": "Other current assets" } } }, "localname": "OtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r33" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "terseLabel": "Other assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r219", "r220", "r221" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": 5.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.", "label": "Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent", "terseLabel": "Net unrealized gains (losses) on marketable securities, net of tax" } } }, "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent": { "auth_ref": [ "r219", "r220", "r221" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount before tax, after reclassification adjustments of gain (loss) on foreign currency translation adjustments, on foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax, Portion Attributable to Parent", "terseLabel": "Net foreign currency translation adjustments" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLocationAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by location in other comprehensive income.", "label": "Other Comprehensive Income Location [Axis]", "terseLabel": "Other Comprehensive Income Location [Axis]" } } }, "localname": "OtherComprehensiveIncomeLocationAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLocationDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Location in other comprehensive income.", "label": "Other Comprehensive Income Location [Domain]", "terseLabel": "Other Comprehensive Income Location [Domain]" } } }, "localname": "OtherComprehensiveIncomeLocationDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]", "terseLabel": "Other comprehensive income (loss):" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r57", "r60", "r219", "r220", "r221" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "terseLabel": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax": { "auth_ref": [ "r50", "r53", "r54", "r228" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": 4.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of reclassification adjustment from accumulated other comprehensive income of accumulated gain (loss) realized from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's deferred hedging gain (loss).", "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI on Derivatives, Net of Tax", "negatedTerseLabel": "Net (gains) losses on cash flow hedge reclassified into earnings, net of tax" } } }, "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIOnDerivativesNetOfTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax": { "auth_ref": [ "r48", "r50", "r246" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "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).", "label": "Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax", "terseLabel": "Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax", "verboseLabel": "Derivative Instruments, Gain Recognized in Other Comprehensive Income (Loss), Effective Portion" } } }, "localname": "OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax": { "auth_ref": [ "r48", "r50", "r246" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited": { "order": 3.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).", "label": "Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, Net of Tax", "terseLabel": "Net unrealized gains (losses) on cash flow hedges, net of tax" } } }, "localname": "OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodNetOfTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCurrentAssetsMember": { "auth_ref": [ "r230", "r244" ], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing other current assets.", "label": "Other Current Assets [Member]", "terseLabel": "Other Current Assets [Member]" } } }, "localname": "OtherCurrentAssetsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherDerivativesNotDesignatedAsHedgingInstrumentsAtFairValueNet": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Net fair value of all derivative instruments not designated as a hedging instrument.", "label": "Other Derivatives Not Designated as Hedging Instruments at Fair Value, Net", "terseLabel": "Other Derivatives Not Designated as Hedging Instruments at Fair Value, Net" } } }, "localname": "OtherDerivativesNotDesignatedAsHedgingInstrumentsAtFairValueNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r40" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Noncurrent", "terseLabel": "Other long-term liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncashIncomeExpense": { "auth_ref": [ "r87" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", "label": "Other Noncash Income (Expense)", "negatedTerseLabel": "Other" } } }, "localname": "OtherNoncashIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncurrentAssetsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing other noncurrent assets.", "label": "Other Noncurrent Assets [Member]", "terseLabel": "Other Noncurrent Assets [Member]" } } }, "localname": "OtherNoncurrentAssetsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing other noncurrent liabilities.", "label": "Other Noncurrent Liabilities [Member]", "terseLabel": "Other Noncurrent Liabilities [Member]" } } }, "localname": "OtherNoncurrentLiabilitiesMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherNonoperatingIncomeExpenseMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Primary financial statement caption encompassing other nonoperating income (expense).", "label": "Other Nonoperating Income (Expense) [Member]", "terseLabel": "Other Nonoperating Income (Expense) [Member]" } } }, "localname": "OtherNonoperatingIncomeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PatentedTechnologyMember": { "auth_ref": [ "r218" ], "lang": { "en-US": { "role": { "documentation": "Exclusive legal right granted by the government to the owner of the patented technology to exploit the technology for a period of time specified by law.", "label": "Patented Technology [Member]", "terseLabel": "Completed technology" } } }, "localname": "PatentedTechnologyMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_PaymentsForProceedsFromOtherInvestingActivities": { "auth_ref": [ "r75", "r79", "r97" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash (inflow) outflow from investing activities classified as other.", "label": "Payments for (Proceeds from) Other Investing Activities", "negatedTerseLabel": "Change in other assets" } } }, "localname": "PaymentsForProceedsFromOtherInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r81" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "terseLabel": "Stock repurchases" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r81", "r198" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash outflow to satisfy an employee's income tax withholding obligation as part of a net-share settlement of a share-based award.", "label": "Payments Related to Tax Withholding for Share-based Compensation", "negatedTerseLabel": "Income tax withholding payment associated with restricted stock vesting" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireAvailableForSaleSecurities": { "auth_ref": [ "r76", "r144" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow to acquire debt and equity securities not classified as either held-to-maturity securities or trading securities which would be classified as available-for-sale securities and reported at fair value, with unrealized gains and losses excluded from earnings and reported in a separate component of shareholders' equity.", "label": "Payments to Acquire Available-for-sale Securities", "negatedLabel": "Purchases of investments" } } }, "localname": "PaymentsToAcquireAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r77" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Payments to Acquire Businesses, Net of Cash Acquired", "terseLabel": "Cash paid for business acquisition, net of cash acquired" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r78" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedTerseLabel": "Additions of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PositionAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by position taken for a security.", "label": "Position [Axis]", "terseLabel": "Position [Axis]" } } }, "localname": "PositionAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_PositionDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicates position taken for a security.", "label": "Position [Domain]", "terseLabel": "Position [Domain]" } } }, "localname": "PositionDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r19" ], "lang": { "en-US": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r19" ], "lang": { "en-US": { "role": { "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.", "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r19" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred Stock, Value, Issued", "terseLabel": "Preferred stock, 5,000 shares authorized and none outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities": { "auth_ref": [ "r73", "r74", "r144" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow from sale, maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Proceeds from Sale and Maturity of Debt Securities, Available-for-sale", "terseLabel": "Sales and maturities of investments" } } }, "localname": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleOfOtherAssetsInvestingActivities": { "auth_ref": [ "r75" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow from the sale of other assets recognized in investing activities.", "label": "Proceeds from Sale of Other Assets, Investing Activities", "terseLabel": "Proceeds from sale of equity investment" } } }, "localname": "ProceedsFromSaleOfOtherAssetsInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockPlans": { "auth_ref": [ "r80" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The cash inflow associated with the amount received from the stock plan during the period.", "label": "Proceeds from Stock Plans", "terseLabel": "Proceeds from employee stock plans" } } }, "localname": "ProceedsFromStockPlans", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r12", "r13", "r167", "r293" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable": { "auth_ref": [ "r134", "r136" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of information about the reconciliation of profit (loss) from reportable segments to the consolidated income (loss) before income tax expense (benefit) and discontinued operations. Includes, but is not limited to, reconciliation after income tax if income tax is allocated to the reportable segment.", "label": "Reconciliation of Operating Profit (Loss) from Segments to Consolidated [Table]", "terseLabel": "Reconciliation of Operating Profit (Loss) from Segments to Consolidated [Table]" } } }, "localname": "ReconciliationOfOperatingProfitLossFromSegmentsToConsolidatedTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r204", "r303" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and Development Expense", "terseLabel": "Research and development", "verboseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r23", "r180", "r291" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r184", "r187", "r188" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Revenue from Contract with Customer, Excluding Assessed Tax" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionDisaggregationOfRevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r99", "r194" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "Revenue from Contract with Customer [Text Block]" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueJudgmentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Revenue, Judgment [Abstract]", "terseLabel": "Revenue, Judgment [Abstract]" } } }, "localname": "RevenueJudgmentAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionSignificantJudgmentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRecognitionAndDeferredRevenueAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Revenue Recognition and Deferred Revenue [Abstract]" } } }, "localname": "RevenueRecognitionAndDeferredRevenueAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r186" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Amount", "terseLabel": "Revenue, Remaining Performance Obligation, Amount" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/RevenueRecognitionContractBalancesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Revenues": { "auth_ref": [ "r68", "r128", "r129", "r137" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", "label": "Revenues", "terseLabel": "Revenue" } } }, "localname": "Revenues", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenues from External Customers and Long-Lived Assets [Line Items]", "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]" } } }, "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r268", "r273" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "terseLabel": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesSupplementalCashFlowDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Revenue from sale of goods and services rendered, in the normal course of business, after sales returns and allowances, and sales discounts, when it serves as a benchmark in a concentration of risk calculation.", "label": "Sales Revenue, Net [Member]", "terseLabel": "Sales Revenue, Net [Member]" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ScenarioUnspecifiedDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Any scenario, that is, the particular reporting scenario is left unspecified. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.", "label": "Scenario, Unspecified [Domain]", "terseLabel": "Scenario, Unspecified [Domain]" } } }, "localname": "ScenarioUnspecifiedDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the components of accrued liabilities.", "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Components of Accrued Expenses" } } }, "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r213", "r214" ], "lang": { "en-US": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfCashFlowHedgesIncludedInAccumulatedOtherComprehensiveIncomeLossTableTextBlock": { "auth_ref": [ "r235" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of gain (loss) on derivative and nonderivative instruments designated and qualifying as cash flow hedge recorded in accumulated other comprehensive income (AOCI) and reclassified into earnings.", "label": "Schedule of Cash Flow Hedges Included in Accumulated Other Comprehensive Income (Loss) [Table Text Block]", "terseLabel": "Schedule of Cash Flow Hedges Included in Accumulated Other Comprehensive Income (Loss) [Table Text Block]" } } }, "localname": "ScheduleOfCashFlowHedgesIncludedInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": { "auth_ref": [ "r231", "r237", "r241" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments.", "label": "Derivative Instruments, Gain (Loss) [Table Text Block]", "terseLabel": "Derivative Instruments, Gain (Loss) [Table Text Block]" } } }, "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDerivativeInstrumentsTextBlock": { "auth_ref": [ "r96", "r223", "r224", "r225", "r227", "r229", "r234", "r237", "r242", "r243" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of pertinent information about a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item.", "label": "Schedule of Derivative Instruments [Table Text Block]", "terseLabel": "Schedule of Derivative Instruments [Table Text Block]" } } }, "localname": "ScheduleOfDerivativeInstrumentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "auth_ref": [ "r159", "r161" ], "lang": { "en-US": { "role": { "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Schedule of Finite-Lived Intangible Assets [Table]", "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r159", "r161" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Other Intangible Assets" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTable": { "auth_ref": [ "r156", "r157" ], "lang": { "en-US": { "role": { "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.", "label": "Schedule of Goodwill [Table]", "terseLabel": "Schedule of Goodwill [Table]" } } }, "localname": "ScheduleOfGoodwillTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsScheduleOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r156", "r157" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of Goodwill [Table Text Block]" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r8", "r29", "r30", "r31" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Schedule of Inventory, Current [Table Text Block]", "terseLabel": "Components of Inventory" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/InventoryTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": { "auth_ref": [ "r178" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.", "label": "Schedule of Product Warranty Liability [Table Text Block]", "terseLabel": "Activity Related to the Warranty Accrual" } } }, "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "auth_ref": [ "r62", "r63", "r140" ], "lang": { "en-US": { "role": { "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.", "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]", "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]" } } }, "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersAdditionalInformationDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "auth_ref": [ "r127", "r132", "r133", "r135", "r156" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Segment Information about Revenue, Cost of Revenue, Gross Margin and Income before Income Taxes" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "auth_ref": [ "r161" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "terseLabel": "Estimated Future Amortization Expense Related to Current Intangible Assets" } } }, "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Segments [Domain]", "terseLabel": "Segment [Domain]" } } }, "localname": "SegmentDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "domainItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Segment Reporting [Abstract]" } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r142" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "Industry Segment, Geographic Information and Significant Customers" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomers" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingReconcilingItemForOperatingProfitLossFromSegmentToConsolidatedLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Segment Reporting, Reconciling Item for Operating Profit (Loss) from Segment to Consolidated [Line Items]", "terseLabel": "Segment Reporting, Reconciling Item for Operating Profit (Loss) from Segment to Consolidated [Line Items]" } } }, "localname": "SegmentReportingReconcilingItemForOperatingProfitLossFromSegmentToConsolidatedLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_SellingAndMarketingExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", "label": "Selling and Marketing Expense", "terseLabel": "Selling and marketing", "verboseLabel": "Selling and marketing" } } }, "localname": "SellingAndMarketingExpense", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r85" ], "calculation": { "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate amount of noncash, equity-based employee remuneration. This may include the value of stock or unit options, amortization of restricted stock or units, and adjustment for officers' compensation. As noncash, this element is an add back when calculating net cash generated by operating activities using the indirect method.", "label": "Share-based Compensation", "terseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the number of shares the employees use to repay the employer.", "label": "Shares Paid for Tax Withholding for Share Based Compensation", "terseLabel": "Shares Paid for Tax Withholding for Share Based Compensation (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "sharesItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r99" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "Significant Accounting Policies [Text Block]", "terseLabel": "Summary of Significant Accounting Policies" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StandardProductWarrantyAccrual": { "auth_ref": [ "r177" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount as of the balance sheet date of the aggregate standard product warranty liability. Does not include the balance for the extended product warranty liability.", "label": "Standard Product Warranty Accrual", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period" } } }, "localname": "StandardProductWarrantyAccrual", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_StandardProductWarrantyAccrualCurrent": { "auth_ref": [], "calculation": { "http://www.irobot.com/role/AccruedExpensesDetails": { "order": 2.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount as of the balance sheet date of the aggregate standard product warranty liability that is expected to be paid within one year or the normal operating cycle, if longer. Does not include the balance for the extended product warranty liability.", "label": "Standard Product Warranty Accrual, Current", "terseLabel": "Accrued warranty" } } }, "localname": "StandardProductWarrantyAccrualCurrent", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/AccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StandardProductWarrantyAccrualPayments": { "auth_ref": [ "r175" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of decrease in the standard product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard product warranty. Excludes extended product warranties.", "label": "Standard Product Warranty Accrual, Decrease for Payments", "negatedLabel": "Warranty usage" } } }, "localname": "StandardProductWarrantyAccrualPayments", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_StandardProductWarrantyAccrualWarrantiesIssued": { "auth_ref": [ "r176" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase in the standard product warranty accrual from warranties issued. Excludes extended product warranties.", "label": "Standard Product Warranty Accrual, Increase for Warranties Issued", "terseLabel": "Provision" } } }, "localname": "StandardProductWarrantyAccrualWarrantiesIssued", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/CommitmentsAndContingenciesActivityRelatedToWarrantyAccrualDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementBusinessSegmentsAxis": { "auth_ref": [ "r0", "r132", "r156", "r169", "r170", "r171", "r299" ], "lang": { "en-US": { "role": { "documentation": "Information by business segments.", "label": "Segments [Axis]", "terseLabel": "Business Segments [Axis]" } } }, "localname": "StatementBusinessSegmentsAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsAdditionalInformationDetail", "http://www.irobot.com/role/IndustrySegmentGeographicInformationAndSignificantCustomersSegmentInformationAboutRevenueCostOfRevenueGrossMarginAndIncomeBeforeIncomeTaxesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_StatementClassOfStockAxis": { "auth_ref": [ "r18", "r19", "r20", "r179" ], "lang": { "en-US": { "role": { "documentation": "Information by the different classes of stock of the entity.", "label": "Class of Stock [Axis]", "terseLabel": "Class of Stock [Axis]" } } }, "localname": "StatementClassOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r42", "r179" ], "lang": { "en-US": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]", "terseLabel": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]", "terseLabel": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Comprehensive Income [Abstract]" } } }, "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementScenarioAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by scenario to be reported. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.", "label": "Scenario [Axis]", "terseLabel": "Scenario [Axis]" } } }, "localname": "StatementScenarioAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]", "terseLabel": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/ConsolidatedStatementsOfComprehensiveIncomeUnaudited", "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures": { "auth_ref": [ "r19", "r20", "r179", "r180" ], "lang": { "en-US": { "role": { "documentation": "Number of shares issued during the period related to Restricted Stock Awards, net of any shares forfeited.", "label": "Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures", "terseLabel": "Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r19", "r20", "r179", "r180", "r201" ], "lang": { "en-US": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period", "terseLabel": "Issuance of common stock under employee stock plans (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures": { "auth_ref": [ "r179", "r180" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value of stock related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited.", "label": "Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures", "terseLabel": "Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures" } } }, "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r42", "r179", "r180" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Stock Issued During Period, Value, Stock Options Exercised" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of stock repurchase plan authorized.", "label": "Stock Repurchase Program, Authorized Amount", "terseLabel": "Stock Repurchase Program, Authorized Amount" } } }, "localname": "StockRepurchaseProgramAuthorizedAmount1", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/StockholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "auth_ref": [ "r19", "r20", "r179", "r180" ], "lang": { "en-US": { "role": { "documentation": "Number of shares that have been repurchased and retired during the period.", "label": "Stock Repurchased and Retired During Period, Shares", "negatedTerseLabel": "Stock Repurchased and Retired During Period, Shares", "terseLabel": "Stock Repurchased and Retired During Period, Shares" } } }, "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/StockholdersEquityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": { "auth_ref": [ "r19", "r20", "r179", "r180" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital).", "label": "Stock Repurchased and Retired During Period, Value", "negatedTerseLabel": "Stock Repurchased and Retired During Period, Value", "terseLabel": "Stock Repurchased and Retired During Period, Value" } } }, "localname": "StockRepurchasedAndRetiredDuringPeriodValue", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement", "http://www.irobot.com/role/StockholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r20", "r24", "r25", "r143" ], "calculation": { "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "terseLabel": "Beginning balance", "totalLabel": "Total stockholders\u2019 equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedBalanceSheetsUnaudited", "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r181" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Stockholders' Equity Note Disclosure [Text Block]" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/StockholdersEquityNotes" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Supplemental disclosure of cash flow information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfCashFlowsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_TradeNamesMember": { "auth_ref": [ "r216" ], "lang": { "en-US": { "role": { "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Trade Names [Member]", "terseLabel": "Trade Names" } } }, "localname": "TradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/GoodwillOtherIntangibleAssetsAndOtherAssetsOtherIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_TypeOfAdoptionMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Adoption and early adoption of sources of change to generally accepted accounting principles (GAAP) in the United States. The FASB released the FASB Accounting Standards Codification as the authoritative source of literature effective for interim and annual periods ending after September 15, 2009. As part of the Codification process, the FASB issues Accounting Standards Updates to amend the Codification but otherwise the Accounting Standards Updates are not authoritative in their own right. All previous accounting standards (such as FASB Statements of Financial Accounting Standards, FASB Interpretations, FASB Staff Positions, Emerging Issues Task Force Consensuses, other pronouncements of the FASB or other designated bodies, or other forms of GAAP are considered accounting pronouncements) were superseded upon the adoption of the Codification. For an interim period, references to the superseded standards are included to help users transition from the previous accounting hierarchy and will be removed from future versions of this taxonomy.", "label": "Type of Adoption [Domain]", "terseLabel": "Type of Adoption [Domain]" } } }, "localname": "TypeOfAdoptionMember", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementOfShareholdersEquityStatement" ], "xbrltype": "domainItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r116", "r117", "r118", "r119", "r123", "r124", "r125" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ValuationAllowancesAndReservesDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Valuation and qualifying accounts and reserves.", "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]", "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]" } } }, "localname": "ValuationAllowancesAndReservesDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ValuationAllowancesAndReservesTypeAxis": { "auth_ref": [ "r98" ], "lang": { "en-US": { "role": { "documentation": "Information by valuation and qualifying accounts and reserves.", "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]", "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]" } } }, "localname": "ValuationAllowancesAndReservesTypeAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableLeaseCost": { "auth_ref": [ "r266", "r273" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Variable Lease, Cost", "terseLabel": "Variable Lease, Cost" } } }, "localname": "VariableLeaseCost", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]", "terseLabel": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]", "terseLabel": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsDetails", "http://www.irobot.com/role/DerivativeInstrumentsScheduleOfDerivativeInstrumentsTables" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "auth_ref": [ "r110" ], "calculation": { "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail": { "order": 3.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.", "label": "Weighted Average Number Diluted Shares Outstanding Adjustment", "terseLabel": "Dilutive effect of employee stock options and restricted shares" } } }, "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r106", "r110" ], "calculation": { "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-US": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted", "totalLabel": "Diluted weighted-average shares outstanding" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r105", "r110" ], "calculation": { "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail": { "order": 2.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic", "verboseLabel": "Weighted-average shares outstanding" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2018-01-31", "presentation": [ "http://www.irobot.com/role/ConsolidatedStatementsOfIncomeStatement", "http://www.irobot.com/role/SummaryOfSignificantAccountingPoliciesBasicAndDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" } }, "unitCount": 5 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 201.5-02(25))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22644-107794" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22658-107794" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22663-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1448-109256" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1505-109256" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1252-109256" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=SL5780133-109256" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109260490&loc=d3e1337-109256" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 201.5-02(26))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3630-109257" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109256448&loc=d3e4984-109258" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r126": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8721-108599" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8813-108599" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8906-108599" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8906-108599" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8924-108599" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8933-108599" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e8933-108599" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9031-108599" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9038-108599" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=115929826&loc=d3e9054-108599" }, "r142": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "http://asc.fasb.org/topic&trid=2134510" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=27010918&loc=d3e74512-122707" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=109979856&loc=d3e26853-111562" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=82897076&loc=d3e27290-111563" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.M)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=65877573&loc=d3e87990-122713" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=84241550&loc=SL75117539-209714" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=68049868&loc=d3e3927-108312" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.BB)", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729" }, "r151": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "http://asc.fasb.org/topic&trid=2126998" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=77989000&loc=SL49117168-202975" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13816-109267" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=108376223&loc=d3e13854-109267" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(23))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r166": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "http://asc.fasb.org/topic&trid=2144416" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(24))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(d))", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747" }, "r172": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=82911808&loc=d3e14326-108349" }, "r174": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(2))", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(3))", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1),(c)(5)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21463-112644" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(27))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=27012166&loc=d3e187085-122770" }, "r181": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=82913815&loc=SL49130531-203044" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=82913815&loc=SL49130532-203044" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130539-203045" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130551-203045" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130556-203045" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130543-203045" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130545-203045" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130549-203045" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=109196051&loc=SL49130549-203045" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=108792157&loc=SL49130690-203046-203046" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=108792157&loc=SL49130690-203046-203046" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=108792157&loc=SL49130690-203046-203046" }, "r194": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=108410482&loc=d3e1928-114920" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=108410482&loc=d3e1928-114920" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=112275985&loc=d3e4179-114921" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "19A", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=107668666&loc=SL79513924-113897" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=79507207&loc=d3e4534-113899" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5047-113901" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=109197908&loc=d3e5070-113901" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=109196918&loc=d3e11149-113907" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=109196918&loc=d3e11178-113907" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31917-109318" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e31931-109318" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32687-109319" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32698-109319" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=109238882&loc=d3e38679-109324" }, "r212": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5227-128473" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5263-128473" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5263-128473" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "38", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=77890550&loc=d3e5504-128473" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569616-111683" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569643-111683" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579240-113959" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5579245-113959" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5580258-113959" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)(ii)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41620-113959" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41620-113959" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "c", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41638-113959" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41638-113959" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5618551-113959" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5618551-113959" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624163-113959" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624171-113959" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "4CC", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL109998890-113959" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624177-113959" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624177-113959" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "4E", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=SL5624181-113959" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41641-113959" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109980867&loc=d3e41678-113959" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "182", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109975725&loc=SL5629052-113961" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "25", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109977999&loc=d3e76258-113986" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=109978405&loc=d3e80720-113993" }, "r247": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "815", "URI": "http://asc.fasb.org/topic&trid=2229140" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19190-110258" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19207-110258" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "2C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=SL7498348-110258" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=99377789&loc=d3e19279-110258" }, "r257": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "820", "URI": "http://asc.fasb.org/topic&trid=2155941" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13433-108611" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13531-108611" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=109250915&loc=d3e13537-108611" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=98513438&loc=d3e33268-110906" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918627-209977" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888419&loc=SL77918643-209977" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918686-209980" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888426&loc=SL77918701-209980" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=77888399&loc=SL77918982-209971" }, "r274": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/subtopic&trid=77888251" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=109247956&loc=d3e107207-111719" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=68072869&loc=d3e41242-110953" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.15(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=114873765&loc=SL114874048-224260" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=114873765&loc=SL114874048-224260" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=114873765&loc=SL114874048-224260" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(a))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.15(a))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=114873790&loc=SL114874131-224263" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(19))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=114873790&loc=SL114874131-224263" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=114873790&loc=SL114874131-224263" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=99384497&loc=SL65671331-158438" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=99380617&loc=SL75241803-196195" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "http://asc.fasb.org/extlink&oid=6589523&loc=d3e617274-123014" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=6590653&loc=d3e638233-123024" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r304": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r305": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r306": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-13" }, "r307": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1-" }, "r308": { "Name": "Regulation 12B", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r309": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r310": { "Article": "12", "Name": "Regulation S-X (SX)", "Number": "210", "Publisher": "SEC", "Section": "13", "Sentence": "Column B" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a),20,24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.2,12)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6801-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.8)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669646-108580" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6911-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e637-108580" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e681-108580" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669686-108580" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e689-108580" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "17A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL34724391-108580" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "17B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL34724394-108580" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669619-108580" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669625-108580" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6935-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=SL7669625-108580" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=114867106&loc=d3e557-108580" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-03(e))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868656-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(1))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(21))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(b)(2))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e7018-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=115205541&loc=SL114868664-224227" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3151-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3179-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3179-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a),(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3213-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3255-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3291-108585" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3521-108585" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3536-108585" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3536-108585" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3602-108585" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=109223946&loc=d3e3044-108585" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4297-108586" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 201.5-02(24))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4304-108586" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4313-108586" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4332-108586" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18780-107790" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08.(h)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08.(n)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24072-122690" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24092-122690" }, "r99": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" } }, "version": "2.1" } ZIP 73 0001159167-19-000029-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001159167-19-000029-xbrl.zip M4$L#!!0 ( &! 4^7=EN9^0T 6; 1 :7)B="TR,#$Y,#8R.2YX M,A#X]$ZL.O3[X''A +,"6GO='>L <0<:B+ MR?RT]_VN/[D[N[SL_?KQEP__ZO=__W1[!P[U!^/A MZ'AX.#[N 6$D"4XPF_*F;3U,?N;:/DV9MT?97+0<[@_D[2D,4-R<4$)"OYS MY6S GY=H(!KU12O$L!/3R49NJE16R+N!OIEMB@TJ81)P2)Q$I:>""8_[JO7H M^/AXH.XF30.WK*%@.QK\?GUUIW#K??P% (4C]I>4<4 *_I_!8*HH \:E1X_Z MPU%_?]0#&ODKZD"N^EG6W +1 'D\D'_U4Q9[0FX/#"Q4"(/^',*EO1I90JU* M=&5==1CU4+ A?12O=162G7)3"BE>;10R=>0*=8HD\J]^3->7E_JC\7I:I!%N MIT5,MPDMC@>0.1)J 9O#^^AIZ4$".67/%^+O9IIYC.6X?$Z92!6/I8JCPS54 M5)P)FLNYH+E*6:J-ZF'AEIAB;?GE(WP3-;*47S7A!K5IITE[-_L1 ;(V9O3AX%#0\+9LQR9WC<9TLKHXC_Z*9.6RH2,B52JA399PN2OM?5Q M$599CDF5H(I(_NBGU.TT0$_.HG:Z*:B04*E?;::8'#M,'E"@$HU]&U R9-'O M?LJBG28$8B>P[ATIE?ZY=K\(L"/9C6R4B&GDCWY*W%(!OF3VW2*A4K\,W0(2 M0KGB)"_%%Y=+3&947Q'7Y*Q]$D_=MV@&5'Y\$DV7'CTXQ7&'P[T]D3>'38IL\.+6U29 @;TO-63)D:XX@"<0ZO%7'DPSN10. MQ>)RXC@L1*Y(/A$)4- #\N[WV\NJY;B2ODH4\X\EI!WHXW@T.AH-AZ /SG'@ M>#0(&1)_1!Q S.+#8)5PA648(/>&?%2_5XV/B*,F!L*5:&U,EP^(4K+H8NS; MYAX_1QQBKYWC8UJ3_P]&1P?#<9W_P9N(UW^ZB\0]G'HM(R B->&P/SK:'X[J M<="LN@3#&?5]S&59,9@0]XP2CLE<9-:X*1@F!L:A201'<6C*< .0N"#';P>+ M],+$X?@!\^=;Y,DRP3W] 1F#A#^K[@P]/9:L#5Y#,<;1;WQP,#RP@EA%I18, M(LF 4Q#+!I'P>,3<1:K&RG65%.A=BO2=^4K33?4# ^]:\ M37RWXB320$;># M.^>GN]#W(7N^F5V$7+CU6@CU0_]6VNI]@\^*YCMQ$;L1B3"4=%<()AG+VCUB M3?&UG6;?MM-$"@$Z UHE$.D$M%(@U@J$4BV0Z 6T8KONE?.H32I6S\:8EHT/ M2M(R,]R=S-%(0#WLRMGP$_3DTYR[!4(RRF HQDOYA*$96+5\#&B);$W\)S.V M.^%(]21:@97R!!%3H+F"-PG?'5I9+W^#3)BW0!P+A3<%79YI#8[O5-2UP!&\ MRVH9\S>B^JXG2](:8,+-B_@VT MH+1%U^$-;F9G,%A<>/1QG<&VAI\9SL.F< 823\D>*/Z[X3?O=^H+PQ:(!/@! M71*!$]H4HB;.9FP/[+#-"@):T@[E'!;:*9L8@4N8F;'!,O39I5XDW=#UHH#<_ISHN*097 MX:+X=1X5^?ZI&WKH9O9" =500&V\%>HY%;C&\N3PN O)M<"W*>&LP=_\R.UX MOUC_70/Z[M5]7@;:IM@5ZG([8%)@ H?AI>1V,_L4!IB@H#$D9:3&N7$X*IT; M$SXR:&).70(AVG$S(>YGPC%_SCPP:HB%B8,!DF%2"4UV_61^RI*U9I=]A-4A M8"X@9K]!+T37",K>JH:)Y.(-N47R[5U,YI]@@.WRE':LS4^^&+Q"[ M%&:0.1;S]"0(D'I6IZ[KOYKA9,/0O-9[7P)42^ M&T',D-F4Q>S9FHME[TN*92U@[V A33\%O8=/EEMQ2NC,B_S#DH0S>@2KN'0R MO#)>M%BO%ZC,J_3#DL5>WO.=6YIG/&@S;!7)C,/2^+!D6,I[OHL#CAL&G#W? MH;DL#'U!=,[@$[P##N0\#/17KB,-0:IO0!S()5536)I(!+W M%J0"D D1&SZ(\OC ;!-61S+)GI,?P3$G2HD B]>'=\(;5K>W))^K:!GAS1 MYMM+>T!DPUL@39(KL>2",@MHNQ3S:%*=*M-*T\I=2#3J6W;9T+IBS-E3V:)N M UVNDSF7"!QYLEI38./FYJ=(Y0N+B+:+[K5<0:]0F2M;Y>OGB$5'%\^1]7:# M5I[(7%2**WZUY@ HF#H9>\/'_I+Z$C\HZ)2Y=RJ^@D<(X.QE;Q MT(ZU,6B&QR7/GJ(=QXF@S'X!+4JF&K$P,+D[ T)<)P-,>TK]7Z9@+= LT-;" M51CC(KC4/SH3["X4UY"'#//GFUE^8_\5AE/LB1LM(&K,LQ:ZPH.7"+I8@HRK ME8W_X.HRDM)A5"TJOUD"8VXV+-O-$9^UT+ERKS;\+EPN]?GMT(OW@+8(&!.; MVA@I5(,B3+),TQVD'0X*FYPN1V%,Z(9E;]7'8=&];"XJJ-PBA\XU4WG2!Q,Y M4'3^@-TSP>;LS'%R=#!\OPI2Q!MDF(.8>WQ:0C>?(=9[W2:6&G,SQ]G1?C$= M: CA+@PI$7Z#\SF3Q]!CN4TE:K%F--9PK0W*PR:(YH5DRK:[X#2!L%Z,FIG6 MAFHA*[$$=A>RE%AD\57$YHR^[!SA,IRZE]X7_?F->KCY :H&>A,DX^'1N)A- MED(2\^LV*IGG,?\-W;G])GD[EK7S6:$T6(9=]B%2(F(WEU5Z?[V)S,"Q=A8K ME XMX.S>#';'J?,S=[J952A6DYO?(]@O*?%F><4'H'4QP(H^M4@JJHB-2<5X MOR2I*(6C]KCHED/ M!.$TX)B'4O(71L/E:4]]B/X$<^3W@/X"H+[B4R("C3U?BCO2GA[0UZ?ZD>-I MSV'(Q3R^O$0,4_=>,="?[N;9SW9667<'/=G-GE;LR5S>7@O<_X6!_MS'/4UW M%GV#V+TD9W").?0T+I2)-&B&F! GC\)&)(@.>XMLW@"C5_&2&[)(?M%-4"@@ M'U''&J5NB_:OWZ*Y( VND3]%+'%%Q3>F,DNE1+G2V>F+ 5TJ6C+JAD^N,5B0OV.U<-+7O=8GE]MF2V772V?:NF_=32(6L>6M*-O[1; 04_W&0R^UHJX646V_!>46V[_N MF6?5_MD@YRWV7[EUE4ZI:[[%EFYZ]VNUDUY0TO;Y-SH[-_X7EAS(6_"4'??5![=;- N)Z\5;[:A,RW25(E#Z.J*UZ']) ML%JTW]IJTXH-R>I5C,BDRM!"HVVSKK)GWFJ59967/2"8%,A6^VB#=EL7=>DA MG;*&%_+HY?.5%>EGR(B0'H@%J?RN,"5J65J8AS;%[!_EI=Q\M E&KS\GE?BE M>E^E4OL>/?%/'G5^%AUA0;E /';%ZL;]#RCSRM#A+-F[_ZS*;>6ON!^6*! M//>>GM$'Q,0J6%VAGIR*;Y%8445?A_B^I.0WL982E^_I+9(Z..I3D(+)=Y&% M!1-?/FY+_/!"S%^]<*J?J8B!8Q< M !'U 5 :7)B="TR,#$Y,#8R.5]C86PN>&UL[5U9]XJ<$JU3;&T547;FE^_"9*2*8LBBZR#DF,ZW+1% M(8',#PG@2YQ__^^OUY.CSZ&JBW+Z\ROR$WYU%*:N],7T\N=7OU^@XXN3]^]? M_?<__O+W_T+H7V_./QR]+=WL.DR;HY,JF";XHR]%Q*J^/_BBK M/XO/!J&%T-'\'Y-B^N??TH:>=E737/SM]>OOWSY M\M-76TU^*JO+UQ1C]OI>ZLD4Z2=TEPREKQ"AB)&?OM;^U1%8.*WG9;9%%5IR^8G5UZ_3K]^?>Q<-0O^EZ\W85J'&LJ>9W%5A?CS MJZ*R#9A--!94)Z/_^D3RYO8F_/RJ+JYO)F#IZUY4>1L:4TQVU>@[J2$4^V3L M9&>D'@KUHM9)>7U=-*G)U,=3?U).&VAFNCV-[V;-K H?BVEQ/;L^AZ1F&AXVG46K3/H2=UI74X*GYK%&S-)H\?%50@)+C,#API^N[YM%4>V77NRD7#7RF2C^-%U=0XE4Y 7>M?_F_&71;][_ _<]3IT-Z5%GH,:M2BSFV\]G4TO MJK\-%;#\9@Y0W53SF* M&6PC.YR2OY7-]JY^N^1P"J:0P<\FX33V#O)N61_, MQ';#"DPV'D=W7]Y.CT/;E950 3?F+IHVS@[93J< M6:VZQNV2O2CX:UGZ+\5D<@H$KWH/X<+TLH"&<5S784Z_Y]\O?MJF\1Y9C6U" MA\"SWU+&-OP=!(1-^ !=H/\^X;>N?!$['E^755/\>T7I/FN^'T7&AF]MDM[] MID4I8QO^K4[NA/IWB:UEC&UT.U:Q=X:]F+,(.CZ9KZWGAI^6Z%NA5N/;4^G[ M5J9=93XIT),Z?@;$\_8B7*9A_-=07E;FYJIP*^,#>,Q%<3DM8N',M#F!]*!0 MU4+QSED?VL0.@_*PI1X:F*7(:D);SIKS\#E,9^&DK)O3N/SAUZJLZX^FNBQ2 M9@MO?A- +CQJ]@-B.JS"AZZ.MCU)3P7T9"Z@W935[7:UOTO8;_&MQZCUZ?M5 MIFU%KDW>BRJ+Q1?@PF;J"C.YGSM\?WUC'#228U_>I%6/X]HI3EN"URG3'LV: M?Z;&OI/>3TGUJ-A' V%%T=R>QH>K8!\*8XL)_&(GA7?-K4=#6A&L-4E[5.%B M=@.97,\7&._6)':"KT4&/:K;KLFO2]N+$LM![SRX$KK]- 2D9 M@I:X;Q4<2+U6S6R+V$"JM:OJ;7+]*'>WHVK%C8Z=*V?S[4AM^X/=?A6J^6:;=7,$098T(PLH4;=LVVS'?$8WKUT4/Z*IK M2$J?E;4U^Q%-;=G_[9'7DT8X,W&SR9SM?8"?E\F3SOMLE5\4$[XV8>K3+J[> M"UI;-_?EI=+NRIN4[@&.RS+F)Q*BJ>W\_,"L1I?&W+P&?-7K,&GJNV\2X@IA MLCS@\-?EU_E2G;L@'W ^F575RK:OB;%A\O,K*#W?*I,K3FFD+D,PHMOX"/E/>AO F3$,LFCOEH4/_K9RZMM:W MR24G&5%>.HNPM1:9S'DDL%?(6>4)\9)KX]O@L>)KQY4[*BN@"C^_ BB_A.+R MJIG_)RIMR.JO#GAW1!N'WVP6S+%V.BHN$,FT141*@:(+%J!UQN-@-3=V?W?A+]A= M>@=NNZL\YLGIFSO[WA95<,V[V206DTF:"DI+3?6:JM\NE#NIB):&(L<4A_XQ M9B@3T2$?3(S4$DR5V;_:LQ=8[8. UK7*+\PD14%?MU3R7;+<1X&QS33*B!:( MN>"1%\8L-=0F"B+WKU;QPJNU TPCLX.5#23;V:11T2!*".'!92@ M812C6DDA-6$\:Q6-K7< ^0(=H%>P1G8#X+@QU/5\B]>[L$.<_H1@3@BSF&08 M,2$CTMIJQ*5DB$7F(Q=:2,SW=P_U\MVC/^!&(X;SB=H]IG0V"^8>D.-""805 MH\C:P)!F2B/",5?:<26#VM]5] MVE=Z!^^8J?W^];IZQ[PG(==.J?XHPB MR3GT=E1BQ(.4"$@.?.&8)AD]X!S]7,D6W&8U7>ZE]LX1!YVK#P@'YX'&^0Q) M1R*EW,$0W6%\&FF>?8_J^9ZW= 1E+)J2]D>FE@M_I?T.GR$42VVY.8&N^!;: M\OR XOPRGVJM%R',Q&BX(^ MPYB2>O=W995B]XMTUKGM@N4VV5P"L@3:'5*2.J04-B@M#*#,24<-A]A0=8B% M1EIBZ\ -.Y28'BYC:_22R/3!H/AB$G MI4$AN@PYS01B2ELBC'6VL0TUI"KM 0@M:&P A*E>_ '<>D$9VJO0,>8]7J MACN<-O.&S8*Y9\"2*'80%6<*NCTPUDN(BK!Q01@M(R4=1HF1-F!T]X#>43I M(-%J2%B;/O?>8D\41Y3B#%%#,,HL#BB:2!V$4$2:#GLP1]J%T0-7Z F:"*2(]QRC*3(.MVB&>F0PI"_\Q$7SF6C&"P2UO9V2. MA1!8>8,BYA +F@C,WQN,=,8R;@7'@738:#3.3'N_E5;V"=8!7+Y5?[*-.$"&6P- @@=(J&,2A1@=BC&+&0L, P(OB%?L57%/K-%W1FKD0P[/[!Z" M9](E].01O8$U-KU<7FG2@DXN4^91A8"MU(C*3"'&M$!8V("LY<)JX,M*LQ=$ M#_IP@.X0C7>KP@Z3;>MF:J3((A :I)S0R 8@3X80@7RF349-9L'=7U#K[W\Z MJA?,1MLL7%Y?E].YREOW!7^7-#?@\RQBL,4&CC*K&-)&< BDI?0JT(SY9W__ M2M?*^GX?<'>,1N,$]^=ASDP!,>^)N2G2[;K?+-A$#K8*YSY2Q3,,@;)Q0(1" MVL=$O$4X"XI8B6T0';QCG'ZB9^\8!+6Q_.4\G3N:!O^+J:;%]+(&RC.[GLV/ M><'@5[AB$YG<+IR;3%N7F8 $@W#,P0^(T0@84.MU9/!)Q7,G%3W[RR"HC1AS MW"D[GSA9\X#GA[).$VNGG%Q_-.HL5$699MJK MM"[S-BS^WL0^=\@F-U[%+%,2.<\PTM)[I%W$"((XSV.F,B):S5\/@T@ZT %F MG%7EYP+JX,WM[W5:=+A?JEH>HMZ\0Z!])CFQ'EO/ ^)&1&33%A-,(:+!P5GL M,HIIEYM*QN'IPU5_.2*N8XV]]Y2&XS$)ZC31TFBO,&>EB?^".0 MQVW^LUX@U]A9QXQ%T$MG2' (=RVS'%E@G$9QIR/I<*' .*'>2![3&X+C'01] M.!B_GS[:5K&1U[22SQ4$/)APA10.28L@$<\"X,JU$IG4@8L.DP4K(1YZ^2XT M%**C;FY)>RT JX7&R]N5MNUM62>34VVQX8H@)S*&:-H*0J6#0)=P;[QS@9@. M]U9D/Y3G](GBX?J?QR?J=^I^'HOG6=3"$1V0RF) 6D>!7' 8.>JTEUQB"#/V M]R'Q0_G00( >SIWNSNEO#L\WRN6,\4@\ T[G3$ R>HJT!XIG+5,R.AH[K9S) M']R!NB%Y.,^9=Z??X-EVHUB[#'*? :B<.\0\<\@ZZ(J]81C12)@0&8D:=QC0 MU _N2SU!>OC1;;D7;:^A;2F;8\.TIR$@D0F/@O$9,D(*Q(G4W,+(KF*'<6V< MBT@//JSM#^:!>Z;'>]AV[YP>YY&'&+'.I$(1,XE(L!(Y'#%BVAHIHQ#*=)E] MQC^V5_6'ZHASS^N@2H-VW75U8TTF.87P- N,(PZ\$5EI(W(9CRCS 6N-/880 MY;E//QYZ=:,?7,?RL+O;<3^5QP[0JL*3M^=L\+#VF>3"*QTI!3V"#X@)2U%T MQD,#YQ#H"BRBZ'!E%3DHP^I<\]]?9#0DK&,[V+NR O5="+Y^!X#.^^+=^K$= M<\HS'K"20:;W,=+.+Z60)-BAJ#/O+&$X=#G$27](5QL.V]'\;47]="/H:5RY MSV%'A]LQJQQXA B*8&0B?#"CTI B-(KG>XX;$]V!#Z M9E87TP"6+/: S0G)XC=^ET%T0S:YPB8=DP2VJHA#(GB*&-= 7KSTT6&I0D_O MG_U ?=M P![,S9Z^^W@7+WLZEYQPK*/%T,:(Y Z, O%(D.221XU$\SP#@/H M89=W!G>R7G$]U. )'/.C:9+>MZ=Q/W_;+\?<<0.M$)2,!,)QE9;'%%,442*B MYH$3ISI<13C.C60'&DJ'@_C TQ[OBJF9NH[3'FLRR2%X(C)0CK#P'CZP1X9J MC *GPDFELY!UF*L=A[<=>MJC'UP/TM&EXP$II&[=C]T+Y$ICB3E+7;F@*%#H MR@T-%FD1A(V",MKN?K1GN,VSOH/;T,IQ#"SF=KN<.&UQJEVSR "!HI1120@(DZ6)U^%^D MEZB#8#C23I?>C'.$<#1V-3"RHYXL?'"([O$AR6=PG.ZQ4BV.T&Z0RET4.// M9C06$M&()3+"9DCZ: 1$6!CK5N/T?XXR]=Q^^ZJS%WIVZ:F#RC"( ?C3Q:T] M[O93!93@=B,M*%A(-]]]E5QZ,;Q M^Q3&\TGQ[^!_-<4TM?#3Z5L8\C^#^9]#?5P5-=#*M[,*/A=4H,7HT7]A.>8J M.(4IHA(XK&' 9J&G,2AS(C)@LN ?SW[9<6PG'Q7N0SMR,N\\N(FIZR(6[KO6 MFR9DCD]/WC\ H(,G=R@M)X(20[1 W$B*"+8\S8/#!Y;@ S'"^-J!:XRTKCFV M+X\+^*&=^7Y% \:<^L&*QC>;[\SKEZ/T5'+N)&/,.8.85!ZJ/SID F'(9H1: M8Z/SX=F_MS2VCQ\.^X.%S O#1[CXYEN_\'Y:-]5L7O[;=%_6I!ZYU-_*)HQ= MYH6["GZ6MB ](R"V*/4I.?78.@U?:.VJXB:)G<:[33H#%E>ZN5UI(^VT*9K; M]U/H7*X?K.'T7^H[4U3SZRP_!E//JD5CO__R='J>.K;$.M^8NAC>^=:J,W K MO'MH;[F[].%#:U ;*SL!GX42WZZ:7/&01E&I^=>TFO+48#EQB"55DIU%88%*F@*!*.D100 MU6;!<2RE8IQU.+@]TOZ(P[A6?Y .'BGM,*!\&_CNA)[3<#5N;FJG K##"]=E!<3N=3;M/F!-*#=M7S M5.H@%+:#ODN1U82VG#7+%T%.RKHYCM8)G:>KP MKKRXX>5VA"(V=S9CW,:P5&0S05]-E@MAG9?:($,<0XYRCZRR'$F#76"22<); MS<8.;-&Y^?(1QNBJ,)/%[/UYJ$/U>>.2, MQM1G067/?W/'_M7YZ,J( ? :[R:2I?*)Z]7 ?A(?V=U5GI;.'?4>*^"!/F ) M,0BSR/J@4;24ZHQ1KO&S?X6D?U_I%;#!*?2]VD,/._,W@NOEYELSN5_&>']] M8](&QV-?WBRNB7**T\%9ZD*=^6=B#R.5]^TSF9C*O M8S.Y>S-A)/N&=N8EU3P/K@0"EZ1/RFE3@2,O7\\8/LS:KL+X(+PM:G-Y685+ MLUBS6:8X !9/:#(^) .WM,<%GI63PA7CEKD2QOQSYB_'629MI\;0-?[X+:'! M#7]+ORTXJL@RC^;3&9-<'?[_T^ M"XL390=>K_ICSIZ#/_X,5.,R_#:[MJ$ZC4MMYQK6I[.F;LPTG8/;$ SLF%-. MB0L\THB8E@X)ARE2@F5(.LT)%P;#G_^<>A@_,!ZT'E_H28@G,'D$QKRQ[]Y& MUN>30R"HC58$A2S3:U-N>0NS;3L9= M_6Y[CKEGG*8W+!%W3B!L ]2+Y P)(C#.L,:$=K@Z=IQ# @?WP$%P'GS.IQV[ M65F>')[2MM+HN?"^->'F\P!H*RU?.E3ZL*8.__C+_P-02P,$% @ 8$! M3^$2GP9\0P C54# !4 !I M0-RIVNX^;EG.!#*^^) 9&1D1^6__\?5A_L.7),MGZ>*O/\*_@!]_2!:3=#I; MW/WUQ]\^_J0^FC=O?OR/?_^7?_MO/_WTG_K#VQ]L.ED])(OE#R9+XF4R_>&/ MV?+^A[]/D_SW'VZS].&'OZ?9[[,O\4\_;3K]L/YA/EO\_J_%'Y_C//GA:S[[ MUWQRGSS$;]-)O%R_^WZY?/S7GW_^XX\__O+UAUM4?SM MI[+93\6O?H+H)PS_\C6?_OA#D'"1K]]=X25E\^)?I\M=A_W&].?-/^Z:OGCT M'WC=%DHI?U[_ZZYI/CO4,#P4_OR?O[[]N(;DI]DB7\:+2?+CO__+#S]LD,O2 M>?(AN?VA^/_?/KSY[B&S+/V<+O\R21]^+O[Y9S699*MDZKX^)HL\R<.[UX^X MSY+;O_XXRSXO T)0 H9D@<]_/])\^>TQ^>N/^>SA<1Y ^;F5H=AD&<_FEX[H M6:\N!O8I_CR_&*GO.[4R+),^/,R6Q=>5J\74I(ME^ [#]S@[/[@*7;L>HIHL M9U]FRV\?DGDQ,7Q*_QYG6;Q8?EL#%\\WBFP@R&4OZ%S MUO-8U@]? A-X_G[^-NZSV^+:9+= M/"997/1[F\2[#[6![.V\N&MXJDT6E1_0TG 7>3J?38O/0L?S8O7X>)\D!5SQ M*A JF9X?;]4G]#3@]W$6P+M/EK-)7(%4M1[7NB@?E^'/0NDWMQ_OPQOOTWF@ M:^[^L0K3UNX?+Y'FLB=V)U!^W8WP&++,%W-DYO;UD&^[-&#B5AM.6[^Y.X$;"!!)T/,)]GLL3 [;V[U M*I\MDKS"X$YT:F=86[=#,*9);]+9ZODE^#71HL MV+6.=K^\67Q()JLL"X:@CO-9U8^ST4.[$ZO2U'B^9RL#_"5-IW_,YO.;8.!E M;\)V87$W"Q^&RO-D;7ZO?[_YV[D1UWA4WR(TV'BV^Y:^!?=A0[A,WH8I?'9=XAI MMP,>6AU59Y*67M"2N 'M99I].S_L9PW;?7WE->IP^W8'4U61!YNW,I3-X4NP MA>/%9!;/=[[#-P^/\21\)&J:/A:G'BJ?"((J@M?HH2V*M?ZS^-@O&O>Q7BT. M[-U*$@E ^M TQ:'\''U&![RL#Y@ M+,\D+H*OP@-:'&ZU3_Y0VU8&L5WT/B23-$S[Q1)0'&MFX;/<'KE5->(O?E!/ MPZ^&[Z7/Z6CP=I;'=W=91*)6FM3/=.AK: M^W0^JQ)+=+YG1P/"RI_0X\.+$:Q+V MH78V7RV3Z;MDN=EWOT^R=;!,-5]!%^_J$80]%VW5;[;A1:TX_]5XUE$AXFQ2RK']<5^47?3^;+'\>3I[^'G;YN=X_FQR.)(? M4(;\%[D%=#WZO9YM#RK\7$23I8N?ILEMO)HO:P[QZ',Z''#Z$,\6S]VA6:G%MU7.Y>CGG772+GH:6=7C MKWZ&TV;^0C\C[IS(ER45]/KJ$QD!NW$4HRC',4\GAV;?]?U]/O*O_I M+HX?PS0,Q<_)?)F7ORF,'_$3@-NTQ/^^_76T.^ (PB5OPH\[;"&.*$99PJ3#Q!UGAIG0;( \<\@-\+-B_2+=-LBV]/DJU)5D6J=<.( M024)IL(HQ!GV' )BMQ)9:R6M(M$39U0V^2'-PC?WUQ]W6&P7V(OLPR*UM3UE MI"TB$ 8;?K%>\?]U,D_S9/K7'Y=AM7KZ9?CB Z/=YJ B+/:;0]T*),A+[],O/TV16$$ 6/ZS-^3V]AU]%;Y.[>+Z)L55?9X>H?*!5!#S44#G#+6.> M",ZA+F&S -$^-7["4CK!@ O5EK8%Q5KU[6MQ,Q[[G17^3(7[32+%!/*>"^:@ M P7]O6'EH 4'*CJX >E4CT3"75@93W=,7(,:J(,5 #AA&$ ;)RN;). MX#[U?6A#W>F:VRHV0S+A9K4LZD44)3LNI,)>STAA'&#C%A!NJ1<66T=*>96A MH#87T)5RH3XX?9&AV->EB_60PU[F)EL#,EVGVY2'$B<(4:%W9*GS5@"(%9;* M6.PEU*7)$K\@PY("&2!H*+5*,4.]+.3'AIC81 MR'41H2$P@Q'@39ZO+E/^ID=D 0\+H'/&&F&%MAC#$C-OB:QO(M!K5'PM4 93 M>C7#X%2WR+*PX@$*-0[SFF+<,%G2VTL-16WULVM4?WUDGCCP;S\?<&JVZ>RL M4S#DBOR=VA('&%->4B(@LMX(@\+J*Q@VF$A^??[.,)%@)QS$D"ELE<'&RJU$ M#(?I9,3^SLK*..WOO R!#OV=+TB09\L] H2_/5=^^%7T(8XX/0^TBI@% MUA/N/>;8,FHQ!&(K-->4][GY;N+TK*R[M"TH:JZGEZKRJ-OL8+O("DZI,=1@ M1YETA'"H2QD<]7R>&8&E+V;A"=MRK1DMZ2[M#ZG6Q892K MPIA(,+C?_*QU\*)MY)!!!!N-G8'&6"ZH!5N9I 2F_LE89S$4#75SW$E>"Y&^ MM/P4*OX^GDW?+$S\.%O&\[,:/]DOPDH[Z8&'W"$,;/%CN266%K+ZVN\L:J)= M[;>)3E],^%!$VR^2J8NSQ6QQEY^EP.$.D><>( /O_)9/6P6N>OK/-:#Y1M/S\55'U&Y!EC2&(;9D&N+4(8JG)G)15@ M;GSA$BU/"QTAU?LVT(S_M$2GM.C9.(%'MAHUS8&C\MB+I^ M6.WE;!AT>]@0F-[LP;UAGMT)O&P<88R%YM0Q@ 1'C!I 2THK+]U(3X):U-9S M"[$MB%X+ <:]#QQ2[T-M#?YKE6_R(WV:O4O^V"M#D*6+\.-DX]X\LP)<])R( M%KARBYW4P5;2T -;&L<*&U<_MO;RR+HA5H4NP>J+.)_"V\J*E.GBK/UXJ'G$ M+:<604XT$$0IRK4H/2PJ_(,<]VK1D1;3SH![3=08Y3HR8D:,874Q]_'B+FR! M]E&9+2:SQ_FYX(6+GA.%G125'&*M'5>.<.X$V6*A$03U=Z"7!^X.O[JT"U9O M9NCQ49_W4Y_K&W& *4,4<,.-0$9A[W8R6T+)-:T[K>GWN07;$8I_#@9=P?(T M7N(,= Z:90&4-,N22:&3HEQ,&'B:O4_"G],][/:" _6WO;]L&RZFZJ$0_,R2 MUL7K(A,6?\JT-(YZ8ZRFU,(26:!Q_905?A4KWP@P'<:R>B;X6<=-A=Z1A()S M;:G64@* +&5B)S<2 (][D1R6"B!1* U3=K'50"I* M>5%T2$CDO,=E4A:2KGXT8I]5/>IFEK4#2G_GC,]K@)\\8'S>.*(2*P"AH5@[ M(!'P%)=4-@[R^B>+?1;MJ)]$V!"/7K6\X:%=%1?U;F:\#3_7_WBS=F/E[FLP M%V?YR:_^\H=%E!E% >6:82X%M-HH5J+"58,0M3ZK>#1B29=X#YFZ':/B;*R=O"T&#ZG-]EAKI9)KJ M +XQS%K=,*[RHR.'B9-&::FD%<)@:G:1BA8ST^<9R6@(UQ5Z VS2/Z5'HI/7 M']7G.,S315QBV.:NT^(^),&&S&?+Y&.2?9E-D@T>>Q=JK*&IML/OY-61HC9L M68V1%EH"K8=.\Q+QHCI=CY[-_ODZ,G1[FS_7"T A9?CV/L5?_SY;WA=[GO#! MAE^L_U4_%_C4G%GC<1%"@AEKN>.$ ^N%)J T9APEOO["+*Z =ST@=IY++V_/ M*7ZSF?TF=3_&]!-_G&_W: M/=V]+$(>*$0Q4H 8ZW PEEGYU3G"1/T8%SEB;HT&S[YFL6-) &_3/%\;%D'P M]VFV5N$RB/9YM2P.P3ZEFSL:3DQH#9\<"420T$@[8D6 +LSYN%1='U-5KN;'8NOX,34\UV[2)E@/$I'A&5"* 8!$F*WY!M0OWXV MO 9??!,L>G5%?$@>5]GDOK#8U")L I:!H <\+N?<#A4?$Q%"$?6<4PB94IC/W467_MAT:6(D8, M]I 'E"A3ZUI/.Y0:>#GA-?C5>P/NB5[]57C.;VY-G-_[>?I'SS?J?3>$E_N' M ,>]6)?W=@1YABI]-1U+=F&9:6R@@\XP@16A'GAN M'=I*!+TP8[Y6K[(R3I>9O@R!N, %TD+XH M[N",-]MK;0(@S)L^(\6:A$I7UNLQ>C0 I3<[=#O$WQ;Y8S*9W?A?U"5'Q3BS(P[KKFAWIZSH&647B-]EX0*@*^ M,,S<&R<+PURP2KO2<>VSI6400<^8%Y*(HFIN&3W.$.2B3TOJTGUV966$0":@\!--+&R;M_ZN%QG;H=E>DSG$K[4^7[+)VN M)LN;;!NA>V+:/=0TK%O>( 08 Y[B[T#3)3K%J6J?F!TOWO7.G-O"WCTH-DB M*7P[P/SDQWJT?80Y#R:]-Y*%S;T7 28-2YF*!/'Q3LC-5/12UZV!\SH4/[K9 M>@3Z'L8E\2'YDBQ6)X.GRB81XE+QL/AXR#$-NP[IR_(V#'LM=)]:K1V44'>_ M5!.%VO&S)LV7Z>WCAD[9YN4'E'2T;:2]M)18+S6UU&J@."T-#HPMK&\Q]1G; M>*FVVH*COPHB^?+F]I[/&!_3>5%8)5O._GDN.:C: R).M5-&$&\\M 0+ M!$QI-Q9_JQ_RW&=(8]U/MQ.,AF=(+59$"FD&B>90<"*EYMS1TF EEH'Z%0#[ MC%1LGPD7XM*7]G_)TCP/-L7M[%1"S5ZKR%$' 3"26"4LYEA8YDHY@*/7D9%? M5[_U@>C/WLJ3\*[[0#\;5J9Y^EA([KX6"1:G'-8G^T54>BRYI%1@+*4!1-.= MK [ ^@?!?6;%U[?,VH.FMSB 9!Z>>1>&_&N<_9X48:WG.7"\4X09,EZ%38F3 M>'TG#]UA1QR!]6?U/M/,:Q]EM(5+;[-ZLDBR>%Z4SYL^!,SS9;8)=SY+@3,] M(PJ$"?M5+I0+>U9H'2<[>9EH<*+19]IW[=F_57#J9S[N&97I[9O%,E[=VA MU%N.]6-24'0W7YURP[QH&]%@J7H4MK1*%LH6]PXGX-/L/Q(-LO@X,DVP]-!VOZM-OI2(](4PLM MELH[A["QBH7]=RF?I[:!77(-/L9V4.EMS:I5. -@Z*"4V I(@%#,<++-XF;: M*5L_>*/7_.3::U,#+/K2:WG!]_MD5^]L-CFAWX/M(^0=85(J@Q""G&GN:'EF MK8%C#?1\#8[%-C 92M]V-E\M3]:3/M(CXI1!:)D%V#"IG.)A5U7*1QQLH/-K M\"6V@TI?6O][,KN[#\-37X)5\6Q4XW=QNJK/G.??T7/2<" M@#J!8& _"KOLXFB4E;X4[;%N<,?E-7@9N\1J8-YLR?Y"E,N9<^Q)D2 !;:,! M %AZKC#!UN]F3T;KGU3!,;LK^T&KX[0FFV2S+VN'^IM%OLQ6ZZPFFRSCV3S_ M?B ]YC(='-0O0:V%;?:V0GY3M0=$O C?YMY)!@WWP<:#6!-JB79.:Z4JE5T8 M '][7\DT[MU7=+Y9MMZ/WO4WYYEHKTMAAO^47\[]+ /L_SW<_E4_0TB(I0@ MZ1"GV&"'O. ,JJTF./2@P0QR\01R,E>K;6*E5X)XG[EAK7PLA:!G4O!/=8NH M@)(2#+QC!!@KN5&@A"=@UF=6[D69#&-D4 62U\2]+]/J:*B6$UYA#[*B"%-H=?%()-LX\BG:5>)09K>'UFADR##/.5 88'S&& M(81/L[ O6+BOD_45U.&OQ>4M9V_[/M4M8F%30@7SQ$!K$66.T%)2(6V#,-_. MCHS;45S:&4;]GL.\6&+/6"@G>D5":$X=U-1)[+71!AA4RFF@KQ\AU'&JY148 M*.W!/C"]SBX_)_M%0'E%C..6:B6U(P:(W:?$,?+CME!:T6(U9C3"ZW5S9)0V MROBH,0PE/L;SXD[#=2[=NV1YUC@YV#[R $!(M:-,<$$D A2:4C:-4:\5"ZM9 M)2WIZGG$>@OH]!:_6-PW"=V M-[SH *Q^\Q37Q#[+B1=M(UWN& $V1 MZ752.'@)5:7=2I7ND:!2,<6H<5)+4]S-YUTI.4.JSRO07]NVI0/\Q\*\LT9J MM0=$ %*O,:'*8"ZE=P 87TIO +/CWM&TJ^ +V=,(P3\;CT:YZ[D&^@Q#F^WL M;9-\=K>HLM0=[A ! )R&$%$$&!4&JV#-E=(1P.L[["\/D7YMBULKB _'I[,3 MS[$ND>$(%073/34(6@LI=N7&0$FIX;B7K*9J.\N"1BB]1CZ,P-L' 7"T< $>->P+I6[.&9K3487R=E1KG&70U3!G(E M;^_'W([[O#OY4/L( 8!ID6TIM/%6PK"9+$_G-/9LA!$P+>CIN3NY!62J:3TO MY<^3R5_NTB\_3Y-9H7%9_+ NDK.GZ/"KR*:3->\W5[BZQ=2&]?> DH^VC:1V M#'G"$??!E(,$,,Q*,11#?=[><'&(4ZLAX6U!U-?W?4G-88T=)IAX[8@ D%A M"B>3*VX+\C3,A.,[&>PX[K\F,OT> [97KI2+PONG,?4>6,V!0,@44AH-*%.L M_LEP9P>#'>N_-:R&=K3_MLB2>#[[9S(MP;E9/&&7JVR6%QOWO1OD-Q4W/L5? M:WCE&[PM)>*5ZE:]FJY_%N MG)R<,XRUP11;3@P,=B7;;B \HD;UF5=4,=FVACZ.3@MU,!AU^FM;I]>&0!^P MY8YJZPRT5)%M%'>9SV\ M7C='1FD^CH\: Q[L=)P8JI#R"F'A!8'6<(^ V>&I>@YA;2,OL+(FZR2&7@;6 M=22&(J\(-1I+7.2\H'M.H.%,9%< $R, %!"Y[!".QD!0VC<6Y*N%5LY:K@>C*^3,J/L085Y(K0K@I[I5UI)10:E0_J;^W[.UF-D9+P RI^K-K MPO%.43#9,= 6.6H(T@ ZL#OIH5!P,FX[HKGR*K"A$5*OE1>C-!;&1(=A:* F MDVR53-_.XL^S>8"^@J/J6)<(!Y$L!59)B;&EF..RIK!GE-%> R*J605MJ"OM M!)V^'=F359:MK_FISH-S72/,!$' 4:2ID!1":\HJ-CX8V':$E0T[X$/+*/6; MN;(9\^9.^6I\.- E8@))9Q''W"*,*%("V9V$BN+:/.C,H]D5#YJC,]"\< D% M#O>*&'3&0,*TD41@#(3".SG#C%C?0.@LDZC[V: !0$.ZMIO>&@2,D+PHZADX MCWGAS0=FMQ0:6I\*O558:=]-71.<_FG0WL4M'&$GUY7MG,'A.P+4E+X2YIR^ MPI(GEROQDAM4VBGLAIK1.!>!E5?%.GB]B<0]M:>!_P(@IA13\G.GN;"]'KCSY"D:!&CZ\G. MT $?'82R6E&EM9;8[N2"DO89_S"D[IM#TY?*W2+)[KZ=V4L\-8HT*Y),O'5. M(L4,EA2520I<,E9_QF<7*WB0G4-M*/I5Z%FK;[]9I)T+AA!EQ#AD$>,,B!TU MI?!@W/N .BHYJ-5&:%RS?D=IQ?>MUF'4^;P4IR9A9\WC;""FAJO MC51&48:]WTDD8)/20/PZYN*&@ RAXK/?[M)QJ>?J M;>VR8VWAT=?7>E'U9DF<0T!:"AEQ2GI&2LM#"J'KY_'UX(>NK]&&,/2;F-M> MJ69M6&"I$&%2D]0C#3C<20DP'&&(4YO*;@V80?,UWZ7+DR=INRRB&C5L+WEV MQ$7X-!S#4!D,!(# PW))DQ"J^MDU/=1<;DZFOO'K-Z+RFFN!*T<0"":5T^&/ ML"YCYLI(51GT7/]DM88^CFMWM@ MA:\M*"B>JX=TM3@TUYWI$:$PUQ.B,=7*80) ^"!WUIMTM+Z#X?)CNAZ9TBXJ M_:^%FVC42DO;IFD$C:5,R"*IP4 K#&.[K%F%'*M?HN;R(X!!5ZI:JDNE.66O?42P(MR: *D2S!J'J"B=0XKJ!JED\AJ8T08F@VZE MKO26$.JP50@2A#C5C% DD&>PST*#B/[@NV@V*ZQ-S^[L3Y,P%'>OCIFN^ MGT-;A*AWRDEO&;'6(X6MTP YA0S5E0SRKF6[]'X.PQQDS *J@J$%@,$D+(@; MF8 SU>X<&>I^CLKZ.',_QV48Q&.^G^/24%""E W3">8!2T8\D=2*4G1F&MR. MV/,]')55>#P4]#(HQAPJ" 73V&H*#;$&<">UHSLPJ(?C/KZNHY)3,8/UT+AF M_8[RV+IOM0X?+W9I**A5P&-NB-:6(QY,.FO95B(HG>_SK'.0N;@A(-<2$H@M M-48HAX$B@%M-N+&E5 $O.N[9N;Z2SL<&UD/FM>A]E+/VD.H>CRNF::D&2*FG M4@*%M?8(2X]UN59!;6']&J ]5Q2N.[.W"$[_-&@O$1])&_:K@A)9(.>IH\"4 MDF(,1AY6VHX2+\G(KX?7:V;(*->(\1%C&$+422)0B%-!O$%>>\9XD16Q@X=; M43]BM>G<3>>[TS;_38[?QZBCD=95X/D6O7 M\RCG["'4.XQ:GPZE]FN-)_F;Q62^FB;3-XO]0[@CX6G%V=UZHON4?%WJ,-#? M3_"CHS=&D%,-M!4$$,$]A1,/3 MCXB(LL1Z2HML3,XU]BJH9HN %0WNT.LUQZ(YKUJ%:8CS]]$( NIPL";K?6OF7:N4IK( @XM1&>TZU0'^8V'>V5FIV@,B'CXV;SPBEEOE,#>%"WE[2KX M0O8T0O#/QJ-1+G/70)]A:+.=O$.Q<4=!" 2EG1FO-82*EO.W RI M!G[!WL)L1KNXM8+X<'PZ._$4XVN6I%XWT/%WMC[;J?/6R3T2,<0X$:\]X:=2ZEB0M9;0>CMQMV+5B#\]L MK<'X.BDSRC7N:I@RRE##$J@WB]V\ M\F,AC]MA-'G;MJRZ6DS=8CE;!NMEC<]RSRRZ,,[RXK+X+U[\]D0HY>D.$7"" M>B*P"58WHXYKXB"1W$BO$<"^4D6X5H0J@=T;Y;&XQE/-(T"Q#_\UW!C@I'>2 M"[P5"$K7H,IS2Q&(;>GC0*G_AEAT&!MX,1O>)G?Q? /3D0W6@5:14$89!+5W M80O)N)#,T!(\IUR?R9*5=DWM*"]M"Y!J]D7-Z>JHC?F\251\ $A[K1!!6"!M MD43EH,-_R#AW(8W@3UN%XDKT.*JMP2#JZT5MY03S*8L7F^R\#\ECFAVJ!'JJ M><2!$E99+A!W0GID-1!;80@RJM>+ZT[;U1TNL0U1Z5C%_WL59\LDFW^KI.%G MK2.(" N;"N[CS<)]D$DDX74S^;)Q76SZ=F45%_ MQF!E)-3!OI?<.B_+P9LP_MKZ;/TJE,Z6S-IH=*I*-9UF29YO_Z^0$Y[4Z8'V M$4,,.R2P1:*(#BE*@)2[?*^-WD8[QK<,Q[#?ZH=E#I0\'K+=A-]CY+O\P6D].;V\-= M(@21#S.2, "@=?@A4Z4)SPA'#>(HK\$SU2(T?>C[?9HOX_G_G3V>=64@\^J-6 ZTG0QTZ@LB4_H=K])Q!AFREG- M*("L2"/1.PN1<4P;K,/7X)!J $5'^BMB:^?O[]/%:6/Y>;,( 6)K@-;F:FJ'2BX(W6^_J*MYK'SFI$?762A^(2HMBKJATP0A" M> ,E7X,[JBU<.E+SIRR>SA9W'[\]?$[G1U3[79M(,6AML5T75$E3E.%QK!RV MPK*!/7P-OJ@F6'1J ']([F;Y,HL7RW?QPVG3]_NF$4'6. Z$HPYJQYP3H#R9 M#'.0:5#']WJ<48T@Z52O)BE*5AZ?$X- .E6HP_Q?/X\T^.P2O=;1H)H ABCR@J)N+,J1:AZ3C><9D4U5YG7Y)@'L3; 9_4]^$ND> ("\&!1<&R((X:[TO7 MFS:&-;"WKL%?U2(TG8=C9"88@G=I=GH2_ZYEA+$W CH./6&8".TE*C$QK&(V MXF'M7H.CJCDBW4[:Z<-#$5*;3G[_>!]G27ZS6N;+>%%X8TY/W2$ZU#22EG$I-//( M6P&%\Q*7MH>!F-2OPH>NPNTDB=['L^QO\7R5_)K$^2I;)_CFNU_> M+#X4$F2!CCK.9[E-EO%L/MR]0KN!J3Q/EKE:3-_.XL^S>1 [R;<23/<&'1J\ M2Q?9=S+L-'J QIV\)T+:8!:4S+C&4B(O#2>;J@GA^Y:BDJDZ7CS/74+4VCLB M&HQ718T%2"G&+/66;.\) , CU^>5+B?O&!J(/>DX<(_'?-/0#A3];6_"\UGR MCU6RF!PK.7!![TA(9!"D6 D5% >A=!258"EB^LR6O:B VP!T.4;8UM"M9A.U MR*I#XSY;8ZM"[ZBXS9 AR(QW'D'-#)([3(,5(L=9&J$3S1YC3>OH_7G8,PQK MSM1J&SMIQD.6?#Z[I'LD<1#/((?"=H1"KZ%7V^M- <3 ]UK:KUHA MM5;U68$K#2'KG2SZV^['_S%+LO#^^V]ODR_)O+K!<^(!$3<6.2LUT1)8+3D$ M&I?2.][ ,._X8JM1V3SM 3SH7/12C%I+V-'G1,HISYF%QA,OM50**EIBH;03 M5V,*M:+P*I-5RU#^N>DU=EMI_*P:F$UO%H^K9;X&!5:WEU[VBH06AC'J/ @P M&JZXWAF?$(H&426]FDDMZ/$86QIC-B0W4"UN;'M%""OBK50("&H$0!C8G=,. M<5&_!%[K063#9D-R ]?BQK97I'G C'(F,<+<<0.L*;%##(OZH<&M!Z,- MSXUZF UIH?Q]MKS_;9%^SI/L2[$UV @3MA#I8A)V%O&FA.#^#F*]^5@_YD(C MILFK(AEPTQH"CHU 7EK$+2P1E:S?6T O9.$XCE6&441?U%9?XMF\D,6GV<=X MGFQ/L@/2ZJ$(-OMG,C5I?BB2Z\(G1- #AQRU @CC* /4$UW*KR7L\U;LJR)B M-_CVQ2\3Y_Q6A-79!53A!) L)>^2!DUUI12"@7K5W=K/<1\ M7#QJ#=+>IJ=T\24)DV@8LDT^+P\P_A2#*O2.N&2$&:"](XXZ0U3A--[(+;B& M]?.,6@]?'Q>5VL?V"G<+'Y/E+9;RX*W8W.Y6M?_^]%37D&-1TNGY\4=AEER:U20PZ M,KSN/_FRKH&:_&,URTOISZ;YG.H6:68EAHA9KA#27$ODW)J6Q:U/6%8R++J1 M]NE>UP,"Y/K;WM_.)>=<^J@("X$M\<&PI,(JYB78!CI:I97R#2;!B^? DSDX M[:CVZ(6ZG: UZLR9W1W!I>@?-R_/SX20GNP7&<25A(H0IAC1**!O2TWHH*#Z M]]=TG"W3'1.>4ZY%^/HRP+9#/!N8]UV[B'B,J>)>"\PY MZ$?X(8E1_)@ER=D9X6S?2 ,I=6&R%6$,V'I"!"EE9GBL-T.W MILD*S&@#KS\'5T:YHHR/(JU0(\^6>[0(?WM.B?"KZ$-1&>7(*O+=OT?*:*\\ M=I 75RD$^2GCY9@Y@WV&\8QKS6@"4^>J/1HL_:Q%Q*&@1&G.)-3><"("0W1-K:MDD"AL+Z)#&BB&$PNH" MU38_+$A E:P?BMM93'@G;KZ:>/1V?KX)[UW[W6]NGSOK3QVBG^Q8U"53"%B% M/>1:6>64W,&%B&M04?6JM-\J2AV?5EUP;..+QR=O9U^2Z?.&3^:)7RU76;*/ M0/V*;[/L\WH]D8 AN29P\9MH,XYY,8[9;ASQ>ASY=ASI;;PW@N3K8YC&DU/G M.>T\.!)4*,>"'6P44DQ;Z^DV%)5!3ZKM'#I&X=AY3O.'1H2$CT5#[#5C5# O MD =;Z0&WK,^5^^#)3M]*3@="=M2G0&\68>Y)=O[/MP4+SOL 3_2*K S[4&LI M!B[87E0C@DM] (1IGUG4E?9T??(A[0K&ODR5(R,^Z^4YV2]\PMP;*YW7QG(9 M?A14E;(:;_4X]XFM:K$:,QKA];HY,JI]Z'BI,0PEBKS%F]LB42@_FVG_HFW$ M.<,<4$DIA49@+R#=3:\^_./X=K$MZ>A%IDPS9/K2]DU8=>/B^@JW623/JOQP MA\A+(!75UG"GN)#.B#(1@@'+6/W0I,[VK]WHO15X>DN*.KXMW=^&;D7YD!3( M!*6$K>KNZK$33&GAZ1$$G$F#O1?:0V()U:#$#6*M1U0H8: =TG!@CY.DA2"? M_DA;H^7V>0$;AXC384806C DF"2DQ$9KT.".E#\U$>O!.V+JA=>?K"13[XD1 M )XXZY12AG $% J:V>$#3/V[I%NOH7!]]*L!\'@)Z--5>VMR^< ($TB<,X@S MKS0DGB.UTX9AIOYU0:V77K@Z^M7 =\3L"VW;95]H&R&M.*:,>PUI^#:=4(IO MT4'8Z?IY@ZU7:[@^]EV.[SC9IVZ72=8Z!;][:F0$TYH%70"!C :0:@5+G+@U M]3N"H>-@'Y/!DO/P.\79_#[@.S3)?QH1B.FD^*H,8**U]8&<9@1X2@ MNI218.AK$ZGU&@LC/?=K!]CQQ <<;#)P6N>)C_CMB7" 2[I' G&@":-"NH5!:[204$WTN^%91P7I'J"Y[F'1,A)32DV'G*(+29< ;-%@B&' M^O2;G[Y>K56U'DWQ;!FO/H_U6PZ[9L #3I1 %#,M)14T%)0(GF?88$UPZ[; MT^7!@.O+ !I/L"Y 'CBH-57:>REA<7=)^9$ !/$X#])K8G\D:K<>!M>CPU$= M=/>KNM%M&O6W7^/_2C,S#R;DN9N7JC\E4AP0:PVD@CA4E$/GVIQA'0*>G\1?W2I^_!^>R)T46\R+X71(M#:;8(H%UB8? 4HUS=>A4\]79 MU2*B_Y]IHUK#KIE@PQ#K?;P,&YED^BF9W"_2>7KW[6R(S[$N$6;%?[F%G'(N M" /#/JOTCYQBV!8UD;FQ M/OR($."[_0'']>WB[FY]Z(DF7>#7%W?L+%]FL\^K0BARK$L$!1 * M2DRM=!1HHP#=24B)K5\KHKO[''IB2$N0]46*=VD12ON8+!-UER6;JIUG:7&\ M4V2A!1J%C2;SW&KKM1>@E-+@!E-'=[%7D4TGJV)0[Y-LED[=8FK##'> !$?;1LXA+B!"P5*'$HDP M]?'"7M)6*Q_(7O]H= @3L_Z)2%L C6#[^DN6YC6=;>NND<*(4E7BKM3&T'QY2,XKG\,,B@17$PC N* U0 M%,F?9(N*HU[6=]4/88]VRJ)V$!P!K]XEIZY(/-TQ,F%N-5)@!KQ7S"G# [9; M:140]8,.A[!..^7+Y6A=>[$6*X%7CFCCK:" *\O93EH:%N>K,E";0( 84L@8$KY;[2I%DG0= M;%6.NGIDU7<](JLY!P8XSZFW0 0YA=[(R#4UKL_#C)-A5 VTSZ7I262-T(EKJ<..(4XJI]T%8Q3U%.-C".TBQUWU>EU#S:+ZF2M.6 MH>DRX.;E (^><)YJ'GEH@-%44A^^%R,!Q=J7$D$#Q3@/S-M0T4EM-T+G->A] M5,?78U'W,.9X^_6K@##%O>J:(T$4<48CK$LY"=/UO86]!5\UF^';Q^BZ"P]! M"!&FQC/ O?8.*:=WLG+GS3@7@5:U>%$%HGIXO6Z.C&K!&"\U^K,4JN=*4"TM MQQ1BQX5E!B'$7#EFQ:NE$PU;HKZYP5\7C?$$U6.KBV+@@=6$:$RI]1:6X[;! M1!KG)%X3^R/1]?4PN!X=CFJ2[5=UPZREEU2B9XQ+ AG%2GKDB1"8@E("Y%G] MHX_.SN#;F^]M7= C!]4\"G63*[6YA5EB6+R;=/6;S(YVL+[I> X=O301?5'Q)9 MJHQ72FO-F960 2.?/@1EZB>@=G9PWCX]6H=I/*=<:TNSN[NM-YN,3_'7)#]] M>M;JJ[J],WSO19VC-UWER^S;]G;*7Y+T+HL?[V>3O=N_@SH_!F[.;F>3>+$L M@XM'.:8QWE[^(?F2+%9)[L,TXL)KLS"ZIP$OIF_3Q=WZW+QZZ8NZCXR(T(2K ML.U65%(DF?0TH1-/GO^MO.BSB]P]Q M]ON9HX=S72-FK.$*$$V)M33L]BQ!)4P2RSX/GVHZG+IEQXNBZ*WBV5O"U(MA MEX,^ZXH^US7L,9#$7A/BF2VNO@.RR _> MNI[;.RT U*7[?),&MEM8CY]FO6P844B"'-(@;XW6$!D"4"D%$:#^Y7"]13GT M8F6T@EZ7'"@2 &]NOQOBR9BGH^VCL!' U&'EG: :*0,Q?I+)J)%6AVFJH+0[ M:%Z'VD>U](]"VY=J^4BU8/40_S-='%VE7[2)A%" 2D&]T(HSR!! KAR7X&.Z MS+DE?--VD!C.0/_V*0S@Q@VN&:QOQU_'>T= MJ:#4#DJCK87"L#3 "*"LLT84U3Y,83H1#"$AQ/1Y*7Q%9?=VS-46:(,M#V'0 MQ2_BNP1>LC[L=0L[*>"\MTQ:2* AG *QPPQ(UF?EX;'1HP/\.H[8:1!5L>VR MW_!SNEINP=Y<1+S]R[I S*]Q=C\B-,9+"!C*\Z'Y+&H*K"X M^Y!,@A9GX3UW!1E\FNWNV'V?I;>S91%^53!JV_%3^I06ETS?5HC7Z.B-D186 M4Z*YECP8.RY,1)YM;J.!UJ%JM:RZ"GK92KBMV7!:OOQ[ <^%=#1_>,1\4= * M:T^$LQ!I%2;O+7)A:F]PWV#+81V#,R<=&/H.(S\N-KC>)G?QW"V6L^6W(WZ< M ZTB;CB&7#$@53 ;+*""P%)>8VB?VZR+_#9]JCIM"[Z.3.W->([NMI\WB:@% MV$BE.<:B2-;@7HKR\Z+,V'$Z7AK!G[8*Q97H<50NDD'4-U!T0YE3JE=Y6-/R MTD0]=^_*R7X1-@IZ#R20),Q3&B%*>2DK<;"^A[WC8_ !9NHN .V-/)LAGO6= M?M*<(:Z>I\S((!7F0D(1Y1+>=1\X;),OR3Q]+'#87E%_TMMYHE\D+++06@FQ,:=-?/LS9N<%7F'(O\;9[TF!U7DB'>\4$0J-+:+B@70* M$L-<(?-&2N@:Q)9U5F]Z;"QJ#=S>%JED$?"9AP&KZ4-07+X^Q/R2G.?1F9Z1 MP@ Q"B'WD$J//72.EO):B.OG++(_"YG:1;BWS5>Z2$N8-J>]Y[ETM$\$E*": M80Z@\Y3JL,NT\L.3*LMQ7BLLYUC9SUSB$IO1 BV%M&4<.05$8)YYS7E6(W>I7Z7.C4J6X1 MQ)H"%H3SQ@/E) NVP59:A5&#&\Q:#HIJ3VTOKT5M"YT^*]942A+=+<5/!E;8 M81Q/$S_:/A(D;#$8(HHA8Q6C*-BE)1" -;B?N^. IG:TF[8/49>YP2^LZGA^ M,C?X:/N((R")@1YRP!3G6/ B1'KS41EN1QK3U)*>TNX0>AW:']5!^)B4WD39 M95C;)%T%V^];H6]>_J50-]]3]_;7T6\?#^CVZ1\C@[CFR$AA)-.< F2I*L>K M3;^%L\\GCK> >]H0@K[<9^Y7I\ZF[STUBH0P7$OI@#=&:*"#P0-+*;QU]9?A MU@^6VU5D8RCJ%VG8UKO]D-P%Q([?0'^\<>0!$ I!9)B40F!/@#+E2*5@]976 M^D%ONTIK#9+^3FO7QF'AGBTWWG^?+>]+UZ/[.IFOIFM'5IZ$_TT_Q5]/GN%> M_+2(2R,P$]@0[:DB.EBD.X@=;'#72&>Q1YWMR[J'KV,?=V5G2N].G6[=A"_? M]SZ=SR:S7E^Y=W+P/U?33?!9_^Z[0Z/H6-L?E^GD]_MT'K[ZW/UCU8/K^>4; MN^77R_=U#>GJX2'.OMW<[JE33=:V97&LUS6YJ[U>Q_EL4H2SS.:K93)]ERPW MQW_OD^SC?9PEM?-OC]A%3Q5^3/KPN%INI[1GPW!QM@B#S-\7914>'L(748SE ME)NVO8='C@"DH5:*> /#&H0%$$@%PU] C#2I=.-,#V@<<]^V\^!(:4XLQ@P0 MB:&P"!NC2A0HA6!H!^\0"D\'1/CZDUNMD=9JJHV&@E -*3&TE!<@TJ>16LD7 MW+>:3R2V7@;=2!(B);9!:@R),M@S)[70MAPT@U*/TPG<"/YCF9'UH+@2/8[* MG3N(^GI16_,23L(JS(PP5F ME/.*T=TZ9Q0;41W0 1?WMN#K+9*RM-C/7++V M7;N((ZR)"Z"8(@6/ 0BH+&6!GH_HFKT!J= &='W1X._)[.X^8*"^)%E\EY2I M=&L$\IO5,E_&B\+MM8;L!$TN>D[D':0<8&,54%8(1:0F)1:"R?H'1*V[J$= MHRZA'91F6]Q>"**F_[7*EYM-R&6$.__$R$FL@('8%D<+EF@3P-J9U8C53T-I M/9EIK-1K'>2!Y[IC\EP^VQU[4H2EM)PPZP#C2#HHF=KAP0FJ?QEQZ[E/8R5= M:^#V=M3^A,YZR.<6T(/M(\(YXL9Y3BG @BLHN"YE%0 M]-A"Q@^%TX]%((5$G (R#L./*AV8+AW6W?G)\25!C22@]0#81L#)[OLHEK?5BD[ M_*)Q1(I(+%P*Q&EKMJ5UKU4\FV@C&-%]^H@T&=BRL4D^%L\7VT2?N?S](]UFEN8]HL* M'=F7)*]P@5*U!T0,0N61LMP9+PR5!');0L;Q>%-8ZFH^[0&EO@ROTX,_6]^O M2O<(8FBQ<6')YI@2QQTU:BLYB]C3",$_$X=&=<1Z3=09AC*[ MJ??C)%G$V2RM6FIXOWVDL"/6*<7# @\9QT9"7\I&;8,4VZYOVFUGX6D#E-X4 MOAWB;XO\,9F$/4(R/5\\]EB?"'JI)4, ,\F ]40:S4H9I3 C7U$:ZNTY"UI& MZ74R8I3KPUB(,/ :8.9QGM_1*/.>:2&\"1=:6,&LCZ M\1I=7^C:\EK0$)B^E+\_S//W;KYH'"F(&0=.&$B]Y1 +AV6YVP<07?+O__+_ %!+ P04 " ! M@0%/+B&\]KR6 !HV < %0 &ER8G0M,C Q.3 V,CE?;&%B+GAM;.2];8_C M.)8N^/W^"FW/8F\U$-DEBJ(DSIV9"Y(B>Q(WJS(W,ZK[+@H+PVDK(CWED*(E M1U1&__K5J^UPV#))D9(*"S2J\R52YSD/R8>'AX?DO_W/[P];YSG)BTV6_ON? MP%_KIXW#^GN6_;9Z7[]XU_\BI?['=I+_]:_6? MK\LB<;X7FW\M5M^2A^6';+7% M/^[_U<6?J'[WKONQ=]4?O0/>.PC^\KU8_\DI/4R+VK:$D>['O[_Y^=]A_=, M8_QC_;?['RTVYWZP_"SX\7__].%+[>>[35KLENDJ^=-__#?':>C(LVWR.;ES MJO__Y?/[B^CPC]5/_)@F]Q7?GY)\DZV_[);Y[L/R:[(M8=1?^Y8G=^<_LO3PF__ZG8O/PN"WI^7$ ?@W N[=@;:&K2?A9!V0? MJZ?O(AY M6_W4A_)7[0]67^^1W]IX*ZI''TZ^[Y)TG:QKT7SU:6>S_O<_E;]:/!7O[I?+ MQP7+'AXVNVIB*DBZ9EFZ*Z>PB&%Q 4( M"D1]$7,WC&-.78\32FB,%K6119*^^^5+!ZG^(YM&_Z3"U=M6R),B>\I7S116 MHJUF\,:!_SC"Z2S3M?,*J7. ZOS:@?U__^W'@].OV,]6Y[I3#?%N67RM<;;\ ME'A!]&.RW17=G[RK_N2="]K)^5^TB#QMD&QEN4$:?K=5J)+E;3=_U1M)OG*R M?)WD90C5_:-EOKK2D.U/_+C*RKC@[EPV;Y=;/=[%YNEU^WR6TI#[1DZ+>%B#R* M2.#"$,64E "8"SL8$8S!8K>?TZZ.:>/&58;U[L+2Y1.9^3;1V/ M[S)G]RUQ.M@.6:WRI^7VXH >J0GD%'52]M5$M8/J9'=."_9 ^AZN\VL-V*D0 M.S7DD:55E=$>=;76./,06'ON92-UESK]/R\7I_:8T2HHB MV9V3>A@*[$>!C^*08A9%*&+$(QYC?D@C@K#D #=KU-[H[G#6\=(!J=- G4/, MI,1DSZBVTR+S&-*6?,O&Z-.Z,5.'IM:014S#T&4N%R$2L1MASXUH9PTQ3O1" M(S4;EB.@XXEX/VR;:??RD#1+HFIP8X\__1A&FCK+86:ZA3YKEPIID6VW:SK_/W[7?)0D.^;8A$B!)$0Y2=)*) '(Q$$C:$( M0D&9C. ,^+QEK7F%RJEAE0% "4Q2:880UR\R(W&FFGA2IDM&74I?CY2E_-VI MJEPFXXR@&&!N6BTQX4!FK!<-49 X>UANTH4 S&44820B&##L(DA%9PHP$.EK MB*2!*52D@39(1V3ITU$2"\P9T))KI%E4D\:TM)XH\C='15%UH5=3M/B070V] M3U?90_)EMRPM)>FNJS*H=,4(H7*KH[&X5%,=;1JMK))Z..I9*9E@=AZK)2.>9.;[G1%U:A41 M .!!Q$3@AH(*[A%.]S9#+J064&8L3:=02K&0(5H'J90%1HWIE(D8R91270R: MS/([:[52]45.K[08DEFE?2Z[65*K(:(X#B$"D(=1'##/\P+>?9N$G,HNR^2_ M:%F!:B#*^1L%0JXOM.QPH:8=4C086TGM/;ZP=%)G9/JUD@;F;$@?4!R]/R4/ M7Y-\ 6/*J"!E3./[%"(4BQAT7X^1D%KYJ'YSG!&LG#M1HD5R%%M@1&LXSX'L$02B\SB0C3"F=.,C02*/_QNG0.0T\I\&GIPIZE*HIA74V]=1#F4B[ M5:YG2))0FD'"Z_Q0 ?ZS MGJ:9: UA1N9>UV]&TR[506\3J*$'AILB7FIHTG'+FBE<>[D]XN?D[0D^>7, M:0(("9N;FBVJ.9RWZ:&H=S]S.+'S M&&E&/'FSEVF*'?5S,GO;S8#>G9RYBWU XC+RX4)$P .E9; W#Z"K%(,8,VHY M F'9PV.6UM<$9'?.'JON(9JA#,M)UR3DJNG8\3&;/B(<#^#/3)G MO!'FH7GFW;IX7,2$=*MII?Q=-9/II1J7/:IIJ5'FH9VVG-.YL$:70^FH MLJO&JW2\*L^KH3P\YLFW)"TVSTG[I_M[@71:2M7IUK6*7+8%P-9:HUY#&=KWIU&1%995![0S>EI MR 'G 41)#X2K@AC[G5&1,20TF)0[=.6 YO#P-2[,4&1)T5=,T^1KFQ--L)DIBR+X2\*APX&R+GQ9)>DRWV3-T6CANY%+RP][(F2<"<;]SE8@ MF-K]*8#!G9T")O9NJAY\,E$1G MB'PJNC'Q2UH\)JO-W299MX=XD "1#['K @99&);_ Z2UYWEAH%2SHV]E)$VY M<8Z@:1[]&T"E;))Y#!;UI$:10$LIY O\].:,AW(Z$P4:[L>;K+ 99I2C&K9= M%L7'NR^[;/5;K7P"NQ B00(D/,BC. IAW-G#KMIE"?I6;"=W*SQ58J)&-"S& M46=0,4<1)@(IC+0Q%UAD3@<:V@1?[SXV5L M/^B>AM0A33%.L<.7=OI6ABJ[$!2,*++A:R"_)SLFCVE MNH07$S_ 483#&'.",41 L,X&%R!0$0^U+UO6C1*,LZG1J&F%(CUR,F&/&36% MJ$AI-Z";VGZ'[';YYNO3KB[)VV7.IV55C36N9KQBIT H,Q0TJW\(\ Q[(2U1XXJU=5()MV$&ZK0?BO:@HU1@/)R=K,VD9-"YMF M.5N5'UE>_\U1;'&;-9'%PN<^=H4/? S*]3%B/ "B MF;01XAH[]HSFZONS.;NZ,SF"ZA/R<%R3?%)KT_OO&B"S<6+L="4.JY,2 T M9,(-HZ[0!V+?@R;F8HOP1IAOG_;HG?L2?M&LV)+BSTZIDZME\;U"!$'J$PTC ;H.UG'9AN$B3^^J)\%LSR49;,*7D#C=R]\8CIQ,+=9;?KA^M#6@>S62H[EZU5E/0E$8$(8%\8A '6KD"]_$(FTLK%.O MV!Z6^6])D]?@YZM4Z&&:^V.D M0@TUG\:4.';'F??T.#H;DE/E-*VD#]1$U9" -2MA&BI<$PQ $/6HM^ MA !;[++=^AL*_(W@#Q\Y!/(YZ\O0W)$#O79&N3?]WMKZ_+[@[+B_=ILI$X/[9?P1N9]1.%JSBH= N[@8=KU5)AY8Q\62%U6AVSXU)FL1.J!60' MF\V-,F$80$@91# .?0:0'U0U9XT5Q(C2R0#5;UO.$QR-&ZUKH)2ID@NR;+*D M)NT*!%F)E4Z8Z(F/=#F;1TRDC3XSTW/4%.(_D_5]M6V8%)O[]/!J//.! ($( M.:(Q9R!&Q'=;8S#"L=+U+9HF+.M%B\HY@J5U;8(N@7+R,0)W:BJB09L5-3E/ M3(^H#&1R'MHRU(G,:.\:JC3MH>H@HD)@')9K.M]' 8S=*@!JS %*E$X6:1N9 M0FVTKD[0IU%7<2PP:$!S)KE+X1(Y2KJCR.=&%&W7 M.?2>&?7H3>[(-%M*E7.EO&:/2;[&;CG5&YUI M-=DS0K*]8J\KQ%VKV#+%^SRTSZQ+YVJGS/(E7P!5[#[>?5ENDZ*UXPGB(T8A MAAQ@$1(NXBZJ]('GAXOG)/^:R;\XI_I]E?%V#$6A7J>H:W+RY#E)GY2KG)3Y MDM,JNT2I"5/'4(UF(@EZPT=O>9(N=_,0EP'XWY0B#6-"^@+0RL+G9@#]G.P# MM @35*Y#.2BE*: ^P)ATM@*AEI[2LV Y+&H&1(NJ*>[3BX(T^9.3$OO4JF3S%!99TXQ2Z5.FIU,U3E>^K)5@WBY=1F% K5!$>//2N:X&YGACC9"X$H5+IC9X"9B31(:[4UA$U]';) I!DEFF3%=9DA1352 MI'6^>J3JB(0B:7$CJTEDM4< =-G3*"=%HS"H)D1:Y%E1H4OD]&C08#[GH4## MW<@,]S.] LSF-9'=&;-!Y'LN1QY%$48 Q(R)SFS 8_6'O(88&ZOPL@5H0):& M\RLG3Z-2JR93PUBU6F)YB2V)\LK!1,]#O\RYQ-C9)422[SEP0 M>9C'7@C#V(,>\DCDQ7MS!&D\=*%A9!3]:H$Y#;(ANJ7%HX)>V:901Z=4V;-X MW^=;=J[ITA!"9Z1'@]PX>S7F8%XTXZG7%@%G#/@!9=B/('0C O<6RYA._1IG M33MC1U'#A4B74*W8R1J7 \.FZ17I/$?RP9(6LS/2I:&>](=( ]@94M7Y>5/\ M5J?<71;A,"@ME(H(PZJBU&7[!29#OMK9DT&F5$:5UC&4 [H;Y^N+\_-R]Y0G MQLHTY2F5$ZC1N%13J+-W3\ZFYK(C2+&R4IG7>>B3&50E:M'Q+JBA(!S&NE5EVL8LAQ!'0VL#ISF%MTP.E75 MR3*3VNHD3Z)E=7I+D)0Z#>!U;NHTQ)6+ZC28'UEU:E^+Y=]7W\JN5CT>^_LR M[VZ$<6,$15@:\ST R20OU]0AA$32I=@#C)D69VZAZ8[<$Z+3G.!-XQ3.8D: MC4XUB=)GTHI.];'4HU-&R)V'3IEQ);/0^=1TBJ=)?O]2AVDTJ"ZI$C'GV",! M@QAYW?UX(0X"I;RWPFA#.2]78RCP&?=B+P@#-]I+"HZ$JS[B)3\\TIC76@BI,:0R M[BV0HS?R)UG;''-P=?0K4C6G\:\*_:P":/DOJP%_6^:;ZN;_S\M=4DL-)( B M)BC#A!$40"'V9B+@4:ZB \H?MZP%'1ZG J05!JC3)2<*5IE2$P8EDJRHPRD9 M/0JAS=L\5$(??F:H_^BK17>3MA^&$'HL]@,*(.6AS[M#I9''@5*EG\;GQU4, MK2!"AS1UU;# UR#=F"2N>$N(I'8HLC<_]5!UH$<_M+B059!/6;'9']<*H0AC M3'"YG(E]$4$&8'F:@J^AI0"LT/HY"GPJ_.B".8$@(C[LWQZ+J=SHJ(/GIT71 M*W!0Y4E-"RQ0I*L&D\0*KWF04 1%PN:E":K@+ZB"%@?J51P?-FGR?I<\% OL M,1 (R /!D._RP(.NMX]"A*^T/:KS_?%J-GZM0#DU*NUR#07>Y,3"-F5JBJ'* MEN6ZC#TE4N48Z@3.0T$&>7"Q^$*7C6M:LDXVB[A]'_M3:2U;\W0=EZN:1 P#*3*P/2_;EM'6E!.@\HI83D5+CDA&4!:OXR,PY>B MB*A2=49%BDY&BF3UE_OL^=#>P3.D^E_#7+U@5)UU^2_'FS2HHOV7:] MH"PHQ2.*0B@P$AYU0[ WZ$*@5.$TP(SE@7^;[99;9S7\^10]#N6$823ZU*2B M>U"EAN4LRR"A ^94R*9X6>4<0SV:8H#6>:B,"4?./KIB@)M!+R/\G.UZ']'; MWRW^<[);A%&IA#R @##H1BYP!>AR+A@ HG2CKGTTX^5-C@ Z,B_I%C=.Y8CS M0^7*G^NW30P\L6"V*563,W-H1>U4CLT&'.^M!A7>I?)%MMMT'MH^HK\RCSE8 M9%KM+IKLX3%/OB5I4>.KGA;\)TI$*HHT<"SW6>DYG.R MRN[3RC.G_%U[YU:N@F8YL:D!6 Q"B)<78W+0!RQ(-B_RD8\ M'@"]?(KDQ\=+C]2 =!,\YRYU1N.+4?&NE9ZTVHL$Z>2>OIK(FM-IR]-:\^X]?6 MMR.TY3PT>S1OSZU;1V-9IRAY?QGYPH?$#V,6"$:B(&;<0U%W,((@JO;*BIZ% M\2+(#M6+?E6R G&JH:0MSK3CR>MT62]+WC,B69BLSN \E&J@#SW%R;J,#"H' MZ-)RGY/5=ED4F[M-LA:ETV2U>GIXVE8R^)&]?Y_NLB:AM]]D:/<8*A%$',;$ M [[GA8@& 6(P<^2@4WKH;$H7V[V" M,_L]INH*1ND3 \H-YM8=3%0AC-D3QBM0,-!2JG4+8W:.NE3V^+OB5^WI30/$ M^;6#,O+1M=<\](QF3<+F,09UP6=&.HUBOO$QRHOM2;$8+G(4R&?#E-FQED M2$^V]AF/A0N0'S$ ?-=U*40<(<]KK2$.F-JSGYHV;&]KG(XLS?28-H4ZPF2' MO8&2-%&B[ (STAJDSN4S[*W;$]CU@_:S8/$5(NMLGBA0 MY6A]O-\-/-P4A?6[?JXHS!!9$Q>%F?(B,]N%--(-E9W;ZO+#V^3[CI;._;: MU&= !)!2(4 <<@*#H+/F$X94XAA=&Y;CF'82;@9"#^K+XEZZ=M\O&N23)] M>7I\W";UK+9ER^*;V&:_GZ#P < 0 H(#4+V?%T6^2UH4K/R/U*TDMFQ;5BH9 MQ-H29JT]).+.B9M"3?+^F*V@$+].W!IZ<:WI5I&+=]6INA0'6R1]!O&Q3>^R M<;JN:CQ=%$ER(3/P4_5<=!'@+J\8<$B5CI'(8-^];C M\ KRC7,Y/7;C=,@-!.H6VD5@T<,W MJPK;;,IJ\V&2J*X]^GVSW1XL@A#&A 28>GY8$LK#$#39%8X0X(RJ:/ 0.R.M M)+I[O2IP@S5U$*]RVCD6I7HK ETVK6AA#U4]FF>"X'EHFQ%/,O/=3U>KQ";= M[$K%?$[6[\MP-KW?E-VK.0)XHIH4>9'GGM@X8FR*/RS>=CL>[JL9-0[F^]C5XW]6 WS; C!11FE@II33?3'-34 L> M7E166VRJ*F[6AT0\E?%J0AZJ*N!_UHDJ_OTQ28OD-&4>NG%1"ZCTHL^HP"QK-"]VFX?ZV$ #V#E&[+20G<])<[1@ESGL*<^KJ^H-R?HX MC:NF][-K5UL3P4UOH\]EEC#1'!+3QZBM/J]Y95S7+TPX$_ O.Q.1U2I_2M9' M9S!;%=S7@GB8E?,?%TR0**2Q&\74;_,C 8N![*IZN"%[LM)BQG@ZF. MCUPEK&?@FR-['J/9H#^9K6ZI/.ZJZ[>*3\N7:IB3=/T62;PI5MNL*-7AH (A M]KTX(EX(_0B[' !&:8<&PBA6"?9L8; C,&O'2,C@YY\KB6"-V M6LCUZPQG%-,YP"[CJZDB*TU^^[74:HO-1F'M>OE6=T=@5?$YJO;BZ?I!WG0= M)W=).16LV[_<3PBA'V""HA!@PDL,C'+LUA"$"^,87GNES8I->\._1>(ID/V0';L8:(EQ.+\?G M6DTHC=!LYX(2&>9ZI-$L\_/01,,^G=X#8H$Q$RJX ) B-V D*I>S+N$X0(AZ MF)1_P GTL-([?(,,3:QY!H7N.J?#]\67W;+75TQ_=BTFIBCA$G2TW MB*3>#1]FP;(R'>,IUTPE(DDM&LA;OPB-1YF:^JBP):,WI9]'6E/^[E1G>HDX M(S!FB)M660SYD)GL2@I:DMR?6HJSA^4F782>BZO3A"!T Q*&, I#M[7%61A+ MYO%B'0?IDQ('0%6^)QEI?CEY_>W/':^W)); M_D5.(52XZ)<#2S2HC7TY!B2>KFJ]J89]V/VF&O7AT:@_>'QFB&O0,>UXU@&< M:3>]6K:#_\3)3\G#UR1?1!$+*<;<%8Q5N13N8= 9$#&76CIH?-9V%6.)Q/FU MP:*8M5#A1BY'88D6M9$LQXB5[,/!_YY<@P9)\\@LZ #/!G<0A9L\R'9;'[SX MG-QOLK1H#0G7C8@'/!9@'$50^"YAG2$[;+?M$\@M+$4Q&$)< MORB,Q)F:.$Q)E\+U%_9IT[OA0H,^N4LLSCI\1D0-L#.#JR@&.I 9ZRE&MHX^ M;-+D_2YY*!8\%KS4<2RB*$( ,()8T)GE@IK8/I(W-MT64H71J4&:V4=2('C0 M7I(=;HWM)\G0.N:FTIXN]8TE=:;G$0*:[ M;^RIV&4/25) ARRJ[QZ:FF<.XDQ/'T6A34\$]K'D<-.ECJ4?4C) [#_4R MXTIFH?,9>!V4I.OV"612O<5VCM--E8 M2C_=H9_4&_,.JO8:KP^5>EU]9O1?+3?ZWY?8I.9@\/%3J\I A/V T M! Q5MX1YK#G#PUVWBE(E=6&0#7OCOH+EU+B.!O5T+^KVL=0S9HV0.X\Q:<:5 MS$+GTQQ3S1U(Y0 _.O?_4[*L,*P_II^3U5.>5^,^7?^Q:1V^CR4;!GQ'JU!9Z;TX_E]:5H8F7GE.82^' T3D2?_>$K2 MU4MSW A[S ,(DHA0!@' ''F=9>*K/9%LPIYEW3_"Y>R!*9TR-$JNHF2/Q*N: M&&M1:E=M+_,DHZ,&6)Z90IKPZ)+V&6-+6=7.V6T//0E.>."!@ DN/$ #YN&] MG@(?8RU5&V!OM&CVQKDP')7./AJE6E'C1F)9-^#4)MBNXEUF34;Q#' ^,\4S MX=$EQ3/&UA#%*_9195OPC&'Y?>9QCP&(@*! $-&:!M 52I7'1@Q.HWFO%H%Z MI\+,T*TO>U:9-J)[:B2/IGRGQ"E*GS;O\]4^?9::[!-7DO\K>A2]I! M3"NO:LI4 \/!33 S MI33KFTRH:(A!9=U\GSX^[8I:ID%W[0*-6! @+MQ2HEE(0KK/2@(0!:&62FK8 M&7%]W*"[<6I\#ABZ+M8A55$ +?.IOPI6IM*NVKWE24;;!K [,R4;XLDEW1K, MSA"5\EJ+'B2^B#'QW BQR/6@&_NMQ:I@VQ^J4K)V)E,ISZ!*29.JKU(V^#2E M4A)4CJ92GI9*J;([7Y52]D1"I?38&:)2L+5(PS)J0V& H0=#'C(W9EWTY@6* MCZT-L3.92D&#*B5-JKY*V>#3E$I)4#F:2D$ME5)E=[XJI>R)A$KIL3-FO?2' M_5TK'F6P!(B#D$*,/8%9N%=2%T=Z]2.C(!M1"1M_ZKS/\2N'G4M.EO;5X]9^ M#;@I:N0&5]3#-E5L\$IJL2?7T=V.=7*&L'Z\\L<#EE4@K<$+*H!!E[80PZ MF#C@@ZM^K(*;J"JROA?JV*DV$'5>NW5FK-J62^ZT.!A>?YF,6L,Q@1P,P$D5?-3!DW MFHH0KW,Y-"@T2J/!.' N$9]6D"=-ZCS4RH0CTJ&<(C?2T5N6/B=EC%B:C).O MNS-"6"Q"'/@!<^:2ZL*.Q'(44!$IQFP%[MB.V T2GPG@A:E 4*R-$ M2\9H(W.L&)T-I==.5':=L[YXS"#C\] VHQZ=QF#&V9I@/^I+LMMMFV+_!41> M@$H-YAY!?KF4IB"..["^BX-%6CUSDZQO)]F<4D$J->QQ,^S?."4M :NZ Q3M MWM0 M^FTBG3>HBSS.Y2F@&P/DEA^G..0X@%!X758W"ERH=(&\OA7;68,:F)&4Z0 F M)9,&HY"HF#/0XL].SN 2/7TI@\&4SD,!#?AQFC PQ(RL#AW5F)TS2HDHK?' M]=P08B^$KMM=#HV)1Y1RF --V:ZVVJ3+0$8($<6FS2117A;0^4 J^AIFR'8$UZ)QC>$Z%[\9I M$2J&80.)E8S%QN-4,2#3I]-.5-9+5%]H9H;A>2B7*6=.@S23'"DH5_94+D@_ M+5^JE6QK;/^,!V/4%1R) 'L"$ "8:)_&B8.($Z!TY&N@*?O*5:-S6GC[$2;S M;(T5:J6U:RQ6E;5+GU!;ZM5#5;]ZF>!X-NIEQ)FWZF6.(\6XBS\\;K.7)*%) MFMQM=IUD-F>95JU^QGY$101C0*(P\#@#(MHCB$+&-8(P(W9'BL@ZK$X'5BL0 M,\.T4E0V.LEZ(9H\OS8C,QFRKH=I1BF?C>J9]^Q\ &>!/5D]_+);INME7L60 MZZ?5[N_+/%^FNY<:V'+;19* 14!X*'0#&D$?QR$,8&<[Y%CI>*09BR-IX.\M M.C7I,T2JG.B-SZ>:W'7XG!:@TR%T6H@3K4RE>.M1/K.\ST/S#/N4V>RI6G$? MS=*G(CDOL""BO#3BN=7KW:[+XOC(, 8Z.;5LI M.G8##]=Z?MW_,UIND+1I==RD(YGQ#J6NW]4QP>)V^7U!"!2 0LPC-P@B$<:< MA)T)CV!/5;&E/SR21E\?FUTI=8V1YTU>FJU0IB?& M-12GQ&*3&76]M<+0,(6]SI22HG8>7M%092+FHYKJT,_HI*;_BGG$]^DJ>TAN M*Z58,!I1/X*>$$0$,0U=CX'.$!T-;*%N6(2)Q-#;*1 M2ZT$HA*)2@E#6_SI26:#QKGM)00\E\ MWGCT*>;SZJBUX^_5T85ITGF]1/6E\\PP/ \Q,N7,:3K/)$>*0<\9>X*%@ 6, M,!Y[7D3<"+FLLX=C4*X-L]URJQ3[:%A1DJ8](&5I2KX_)FG?3I]I\I1B'LN\ MZ84^TZN1CA -9W0>&F3 C_-QT6!F]#9!_YYL[K_MDC5Y+O_TOCZD5540?RY7 M(Y^2LB.6,$)&*"9!B"$'/@DI$["!(=S %U"IB,.X\;$W2CO(3HO9Z4 [%>H; MI\4]9/?41)/H[*>.W!H#=UB'-L0(VZ[7"97>B#78-O/047ON]6[6&N=13W7K M.YY]/PI0B#E$(>?$@V5L&7>&$&1*%< :GQ];.2M00V11CC,=X3-.UT!IZV5J M!-VZ1Z+\C;^W MXT%713[4OVY9/3I ^N*A09B<=MCE2DTZE&BRHAQOV.@1#GWFYJ$; _!GIOJ0 MXA5 ^^\SAE%8U\!]>A>.IN=&\CF?DX?E)NW^\C;)'\ BHAA#Q 6-N<\#[A)/ MT Z&0+[2'>'&C4^>S]F#;G["J6 ;S.9H-8B!;([MMC"=S5%JAO%S.6?HU,WE M#&F9>6BD/?=4915W#C)-\\ECN?D?5KL\KJ>K?AK:?Q#5A3TY3^3]7T) MXW.RK8O?$O2HC9=C?MNN->F(X1)0 +$.*:8!2R.!6]-XT#QCF\C!FTO M[^NZS5<@NU+Q#N:U86>1;,EE_-@\*R[=AU-LKT3V"FW7"F5-L3X/I3/KTKFB M6;-\F5*^.*L2 0L7($&ACPB#(<:"NRX3G7'F!K%)[9,T.0?U:Z :UC]9RLTH MH 6V+6C@-:(G4<$&U =5.3^CZ&$JDXI:J$69T:2D1\V:?*^7 86BQ $+@U% MJ;N A8*%/H"T-4XI(4I%O(9,SB$)6*%U:K@F,X$*M!O(XMEAW$(&3H;L\=-P M>_IT4VCJ_,]#%4T[I9*ZTN5L:(SX2YHGR^WFG\FZ0_(Q/0 M2+XI-NE]_%2] M&?BI_/-L39.[+*_.JRXXC!#@U*<,Q\0/".,(M4@9]*C2W>53X)LN^FP$X,8Y M>/=*&,IHZ+K^5([:[LJ5CW?[-]KV.P3%_H$(/XR1 M[\4<$Q2+$ ,1 [?=+X^$X+)71HP#QN+Z[@A_55!WY$%]6<>Q#]6SV(=G[PYN M3/; BA'R^Q1JU,:=B2:-Z_.I"DW N*SN_+S7)Q[NV-*=$M^# "TLM P!$ M,0Z8$"'KRAPC5S"EYZHT/F]]65FL\LUC-_3I4ZGT2:%X@%V'-3GIM4R8FHXV M8"J:#G"<7V^3[SN'EL/KMY&5\2TW/3(W@,AY:-80!S)CG4KK(;PJ:BI%;K5) M#O(5@P@S$88!!RX#! @FFF.9/*8>8[)%L@,LV!LG!U!.AVKJ]]G.$-0S6 RP M.H]!8\*1\V^R#>=&^OVAS7VZN=NLENGNK>U*?&OM70#D>C'AF!' <.!AY&*R M-XZ!TAU[ADQ:GKJ_/#T\+/.7:CXZ NR<&7V*;Q,9(EQ.P2;@6DW-KG [80 @ M1UV/SAGF?AZ:9]JITR>*;' FK87)?5V+E3QF>65W+[V>0,AS18PB%P!&88Q8 M[&$&A8>$2STD.QAUOV]Q^#60G#VFR4*)2^3T#;"A?,YD2 UVXW00F>%%>MBL MOB7KIVT9\G].GI/T*2E$Z2/_7DZZ:?6L6+'+'LKYEZ3K#UEZ_V'SG*Q)422[ MHBTE%LA#KAM3 :' &(:0BPY4[&*UT,(N%-LA1XN^BCDZ_$[57YS. V?O0IU: MK)QX5WOA-&[H'52QW8"2ZCB?ME/44/O-9D=Q!Q'>I\OCM.1,U'LD9T\U?DR. M96<"5E&6[IJT3U723E]HDJZ^E0NIIKH]8#$+B>M3Y,9Q1!'*EH_ MV)AE-7^%SZD .GM\6G7EP]F5$^)1B563VB&<6M'0:USUJ*0QFN>A@^;MSAL#''L+5 MPV6,4N QW_4Z(W[D(AGUTORT;:UJP2C%6+HL]6O0" 0I*HXD-S+:4CIWI"OE M[TXUY;SW9Q1D($W3ZL50\)F1KB*O!3\O'\I%XRM3K>YX.("(0R)XA*A'&(#P M8(L1J;=NAED831F4(I:!K%V7B'$(TU4*$W&(E%9KS[?A1BJ?.SZE^UK!<-%N?7 M!HVD6FAPTZ\0=FE14X6Q&%%Y?]06,YJ/CTHR)/GTZ)%S9U10GX Y/#JJA3L; MVO2#,]JWY0?JV SC@($8(,Z\$ VV%R<&I'AD2Q\I9=PRII:N5>9UK9D?#D^M):DUVM)6ILM=&>P+&.,8HB@7E M"$%. 0'[:,^/E1Z+&6)G*F4RDY!6(513FRQQ:4B;YI&!/G"DHDX:S,Y4G70\ MN:9.VNQ(JU.[_'QCN8W6 A8@$GCE6C3PD8 $87*DB8'277-#;8V5=3HSSM06 M4L;(E52K$7G53$[I4&I'M?JYZE,N0RS/1+U,>7.J8$99DE4QQ=*J#_M[2OR( M^B'Q("J!( \'6(3N'DX4*CT;;PV$9=W3+87\H'O+DKW6DM/+6324FI#:;",K M.JO+<8\ 6V^V>2BS?3>SD8?#P/5R^X3K\CX!"P1<+D07YK^'LX\8!&[ />;Z4>S%@C,W;,Z!QXC#$/HJ M6F7(I&75JE%6IVN.[Z]1$RM3W,K)U@2TJ@G8GM$#Q)OFS/6+\VO[_Y,=O)9C MKT?;#-,_#Y4S[51FM[S<-REQ0+P(3G T]$PN=^X%+*PZ U M(BH *@JG^&G+2E:BJ4;='H^:B*G2)"=6%AE2$Z5332[GH3"Z MX#,C_4E-,=ZGSTFQJ\IS3A4*N0@S$$".(N#"R$>>BSI[ON\I/5BK;\6RCAR M:0T2TY3*"O2M;E.O% M+]^6>7)JE566 @0P"P+7ASB*4-19!0@H'1L<:LNR2OV<[+I+O4N$3@U139,& MDRFG3&/RJ*9/';(#@?/1J2NL]:B5*;[GH5G&O,GL]$K%.WJ3WX\6@7F6EK]< M-;<#GU\2PCB&H(SN/(\% +@40;R74<]':C?XFC9N?8^SR@F^NKCN%6C%BWZ- M4R\G?Y.RKJ:')=3+;,]'&E49[=%*:XTS#_&TY][IM<1V>90.#__QM-F]'&YD M0]2-<77Y3H@$IX1'I#$B0,"X[\D&,&I?M1BOU$ FNT3P-0]]$8@>8?,8,[K@ M3^.+(1Q(7PZX*\?2MVQ;4E(T!G_.=DF\*5;;K'C*D\-X\WA *8;(]9@?0Q8C M#D!GWW>A4AQASJKE .(8Z']WVM%3874.8.7NP+7-OIP034.\FD:9X]S.M7RR M%/;(F_EFF(?R6?#K]%X]2\RI)+;3DN*7S\O??UJ6BK)9;HN?DUUUSU^1Y,]) ML7 Q"@(?^+%'D4\1\5#@-X%)S,+0]50SW /-C9#JKA'>."5&9P_RQJG22_65 MFPU0]6SW4)[ET]XC4JR>_Q[&KK44>#]G5W+AA@B?A^J9=.A,=MPH5\HZ)S;I MIOB6K/^:9>L3RQ[P( #8C;CP81R*J Q.6\MQY(=*59DF[(VG=!U(IT9I2NJ& M4*VH=2.QK"UVN@3;5;O+K,G(G0'.9Z9W)CRZ)'C&V%)6O-+8PF7E=P3R"08D M*A?:K(P>.Q.!7UUZG^V66T5ID_FPDH;M,:@/,4V)DN)&48M,TZ(M.B60B82E MM"RC("I,S4PJE*!?T@1U_Z5NROJ4CWFV?EKM\F3WE*?% M0N 80^%&V$4HPK[ONJ)YRR;VRU KEBH(,&#&^DY9!<[9H[MQ6GQ."U#A+JF! M?/;+Q\A4JHG)C%A4N*)K/#;U[NS29U7N%J]>_\_HLD'29G#/ER%',N,=2E_! ML^JE]U6>K#>[8IFN-_51H>HM]X4(1%09#'C@PX!X<1CPUC:,8BY_#Z(QBZ/K M>@W5:;'6!X@/:/7E:0#EZGH_#MM#I7]V1.M/">,0;FIVT")>:ZJXR(ODK#&< MU_E-( 9\ZIE+3#$FFQ7XD!1%DK1O9:?W'Y)EE(4 MADB>1]+"E#.9E8ZH$!8?ML7;)T??IW=9_E#/K^1K]K1K[P!A6;';/U3WUSPK MBI^6^?TF)>FZ.1] D_+?).A_WSU0ZM9-.XZ53NMD=UV@<[7Y7 MNRI3TS?/'J(0ELX KOV ]JC'O#O;9Y;'?>:FZ32'MTUO7O>:Y:'7?-7K-7*1 ML?VFN113SZA3S" :GQ,;V3R'KNHE@Q7MY>*CAOKQ;C^!?\JSN\WN0XFPND*K M]:JXS5B6%MEVLU[NDG7SFFL@*(TII,*/> P\2@#P.V"1RY0JPD: 8STE=>Q! MI5R'"+AQPOFA.TH:5+"H(&0A!"$)7$Q< M%L4NBGS066 ,25WVK_-=Z_F@$H[3X%%Z:T2+HWY)M4V/:EY'GIDS^E9T E.^2'??/Q]M)^%+N0 M84)#""/*J @%CMK/QRA@4MN,RA^U/."[#JWT>(D:RC!>J"((^%9LT*8HNH*BE!#("A'"QBZLB?.IY M"(6=39\#Q7.10RQ9%H .TR&:UWEB;""92Q6#/GRYE"B.8:D1:DQT0I?S 6,*?GR MWWIOABF2)"DNUOC1%9-)'@)[14.??&C1-1.YT,-^*@\#&%"4@\_)8Y97&9!] M:B2]KUYM$%G>GQQYG1OYL'_L@48Q1#X-*0Y1[/&(<1%T:+D7"@UA&1WC2!*U M]^O&.?*L?H;%NPP%2BA"4=.;QLTQ8VL'M65+(TN+F(:EYK'"/6A%\01)=P5G077BY3NS5#Y MKF7%: BD3[,Y#A0SY\J:LR1Q#\OG#;;62*TW^M,Q_2ZI57&?01X#%4%#? MQ9P GP6\,M\8!!QC-9D:8,BZ1K78ZO'UT*%3S;KI\RB;.!N%0-7NJU *LQ];R%43%5=906B577B/RJ;@:.R+R M-;9IE.H*4WWK-D,6F3 C]-4LR%FE*M5/]Z]O2Q_?U82E[$:\L(0AWX$ MP]A'+F$>@3@*8,!0()LJ,6/,XKJDPU=MXYQ]6&*JIW"DF).IRC3"_#P&GV&? M+E5I&F3LVJ L\NH&HZ*S7->#!K$;"S\4 H8P#E ,@1NU%D**0JD#83K?M;S] MA#8)2&// $] M3W1F4.0AE5H0Y8];UX2JN,:IX&@=%5,G2V[18I4G55V0ILC**N24BIX%AS9K M\UA;Z,//#/4>-:6(D[OETW8G-NDR76V6V_WJI:@,_Y14]6L+P#R.,?80X#P" MH>?B"+6F(URB4%$/(P8M*\H>G'-8V(NFO+X90EJGQ,Q0+:<]H[.LID>#";:B M4C*D]2B74<[GH69F7]"-JU]VF6P<@T!)0X99LJPG!W!.A>[=)G5:?)KJ,I!7.:49CU(U MU1G"IA4-ZB6J1X_,$#P/;3+D2V:C"ZH>C=R5@52RYLL\W:3W16M,A,+UN(M< M/T0",1\%F'3&O)CZ:E?E:YFPOBO6H'(Z6)KBI$N@G"J-P)WJ3IDR;9:./9XC MID=^!C(Y#]T9ZL2;$XX&.)&.CE:KIX>G;77K3%V87JWE\N1;DA:;Y_8=DAG$9H(4T]CP(2+>3AXD;2#WU;=ZJ[:CI(WOOD-TNWWQ]:NXXV67EC)_7 M20N]L,DBIV M]:Z>R/*?D]]+0-E3VE[?E9:_7"6'.VP1H2(,8\@Q+=69 N'&70Q((.-*]\N: MM6Q]3;D'6U_>5\)U#GB=UX"U=ND,-X3LHG.J-E!=A!JDW]*J5(')WE6JC1:9 MB9K:\>W-*M8>@[*J>EO^],<[LLX>J_5T*^!A7-UL"$*?NI%/" IIU&U&DO(O ME%X(T#)@62,K3-7YJ@Z5YOZ@'G=R>F>=-C594V?,BG:=8Z5'H@:1. \E&N9" M9K!3#8G6V+>R,Y5!XK' ;=+5YG';5*26,2+"(8"4\I!P/PQYY+<8J =$3K@V9B,,"]>&\3]"O':%2NEXS523S$,E M+?G6&Z^995"ZXN*RU4[/78@"#[DA"UGD,0(%W]N-?:2T(3'2F[69XGJRI^+4BZ M+@UG^:>D_._ZJ(,>'8ZD+T>_:7\P79.'"G@MTZR,>E% ,>-(,!93A&+0074I MC)2*8:< .++"UCXZ1TYJ!:73-*6<"L^^%8<)MW(#VJGSM4!R7YGPE&TZC_E@ M6@I.BY2G;P^]3,8)\+:Z&H,H#&F,*,78=;T8!='>LA>Y4C?DF+0W\9R@&6<; M85HG/V&?9+.2/5%T+4&:=/YA&.7S4%2C'O7F&DRPI7&FX\NW9=E+WQ?%4[)> MP)BZF%1/P<8QCK#'A8"M->9A#M0N ]6UHC+HM*X"ID-APN$(7$!8 A2[F+/%0AV^L8X"(G:Z7GESUL.H@Y"\[41&M6S\NI\ MR6F+9:K49.7L%:CGJQ+'/BA_RE*/P R@=![:,L2!-^?@!W*AI"B-9L5/>96E MK->,C9;5?_FQW@DJ3]P\?RWQ;.#YORAVJ7+M_Y/5KK M*.C;= VCJ'\5JG=?ER6*^FQ^DA;U95X.R?,J"U]?>/3UQ3G^N4_+E_J/R>_+ M?'WCM-[<.)T_1;5KTS@]@68J,7]-4^TTXXPTUY*#YS39)I<#-?MOR^U3F/.0O7E>=<- MQ8VVZ:QG!1O^J@3J%I@V$;=+P>+0YY@1B@F.HXA!Q/8GZ6,8,*43 -;!3!_5 M&U"9B=IQ>-P_>A,:7P;\P>8(:=8U%PI&&W36,X0%=Q66$19XUBBBNLTNW-Y4 M3V)U!O,XT?DY^1@1RS?VF7.R;UISN'>M!OG4OJYTK#65:?UM14YY\A;[?*O MB?J(A M+.?PV^7WOV]VWZJ]]7+B+_^@_EMZ"GCA>5' XCCDH1^ZL8BH[W:)0XY\H9:@ MLP' ]OJJQMQ(6E5>6\)VCG#7?U;_C$/?[KOJ9^"L-)7DKH;L\WE-J3?YUUVS*JN-)]OU;<:RY^0$3CV+Y,UU M/[\\EI-&N58K__@V.UFT_5+.*45SYF7A"9=X"'K$]5G,8>R2H)M2N!]$4M?T M3 AOE"Q:YU45SM9^O1&38]>G=:[Z)V\R-;6#3N.AG/Y/V0'Z9X<_2-OK MI-_^_]WLZVSU5'VQT;,_>/._>F*UP]94=0YXQ+XIRRO MQN1Q-?YMUM3B+R+/]R+J4>['40FP7.Q"UJ&"/%*Z5L$V%LN!2 W?>87?:1QP M?JA<^/-^XZ?TX\9I/5$]Y#!-*\HM/^?4@&K1Q#AM9V5I.I#TGE7J6,TYCP7K M:-YFTPP:A66L3)(TWE2'E+.\B).[),]/UM8PX@&$S&7$]5#UFA0-NJO!.<=4 MZEKND:#,91/.V;OA='[();PF:3^)%>>\FL[2!MD?J]44%HSS:CV]Q>%)*RX/ MK?C8MN*J;<7UOA7772NNCGP9NA0<3.:E9=]XK32#)=Z(SF:3C 2-6LS/R6/9 M^;]5R6V2KC\GNQ+(F9+1A>\C#XDP1 $G(/ H49^O]-:HJS36)@HUE*.VPX"$K1GN[55% M2O)XK0+2='/,8XEDQ[5SE8UV^#.KK$V]1U1:C*$K(A+&Y4(,NEQTU^J+.'0] M:\(J9WZ&NEH#MR&KD@UB4E4--H)]4>TG?D)-O59<9Z,M_DB*JNB9EJ#JL"=] MU5SSH-SF.>%W=V6<_/'NY!&D]E;I]VF#Y?!VR2)&7N S*$!8 D(!(2&/#H#4 MS@M9A&$YB71 [C30JTSTFR?'NCO9][=^'+_DHWBMG<46D]/?F326FAS;;"<[ M=^AIL]PCUR,TW3S4>PQ'3R_K&XM;Z5AY]2U9/VV3CW=Q:?"YAO8^+79YG:\K M_KKE\\<[L4F7)<(S]NG,J3=JO2^?6VWH^L,#LU M:,7[F2=H4LF8?-:MJ395&&Y(.]&[:;[[8OS)VG8><\F$_I^N%R9N"?69IYS_ M\J=D_6&S_+K9;G:;I*@'S@& !PCV.":"[ISPMR@Z1 ,O1$@ M!ED(.0H):VQ"Y%/OVE@U8\3>\&RA.2TVYP#.^;6#)QD<&^)3H0)C5%[U"BR& M\2M7.W&-ADNE$<;HFT'E@SE?,AL=3"UNJS+-=3Q4I%G5*ND915&]7 MUZ\\!0 0X9$XY$Q$#&$?A'%G/(1JE>6&3%J.U[YPYG3SQ8T#O'ZK:/9S\EB=GDGOWZ=U9K*" M15_:OSRLOB,%87STS*_WZ3U0&]/S7U-RF_LS]#=+K_K)QP- MMZ-J]G&Z)M1/178MN0=]W*8W]3LR[4_,)T&IQ+-4MM).R\U#OJU[>3&/:9-5 MJ:1FO"E6VZQXRI._9MGZ]\UV6Q^A?)_NRN&P*7LS*8ID5TTX]9^WO]N?VSC" MNT]T4!R&W(U\#T+/@P@CZ+?A>@G21U+'W2: 97%W>N^,TWGC-&>D#_XXC0M. MZ5'[=]T?',Y9'4\E6AG7*1I;(4<[\T;7R^H>-?Z[??/?7&S_Y6G[OQO0 ^1R MPN9IOY1%GK"!9Y!WGM+[;![#3'?U09^*39H4!5DUUX:6M@OZ.VUQM'$6N'V#F&7$>J1W_01JO:Y6RFVD1U M"3%!<^BO',UWGXR,->@-T0 M^Q@&D<=Y7"Y(&FL,A!Y5D5==&Y95]-QXU=H.U.903@['H$]-]728LZ)K%ZCI MD:^A9,Y#I09[D9GM8L,U9U7?ZY>T&6[J8DPQ!!Z*(Q?&POK6!JN7!G>8# M%S@.B.?&I#KT2DE,.,%[HY[/I5Y.,&3*LE8=HVL.H]2SQ/IMOE[QL;:!!,O) MUHC[E<[*M MKV#*_K[,\V6Z>ZE/#2VW^VT+'OD1](B(8S\L8[X0HE9&N1\#SU/DUC>KVKRQ?U[=WC3,_ MJ^U;\]Z=WYZUQ*)L./A3]EP?2*_/IJ?K9;[^E&?KI]7N!,;G;+L565X]C+S@ M7/A>X'L"1XC&GHN!&W9(*%&[8YNHVH ^VTJ,\,X0JYTT)77/]: M:1RY^'+J=E&;\JPTB95X5(/7GB#59BO-(W*UZF$V7I]7O4ZUS_XB!(!SZ(<4 M01H*%-'2?F=4("X6C\V-K[MEOI,LA!EF4&5DGV*33XDMM]6Y"&>Y<[XF]YLT MK:JTRQ5F\T'5ZU&'$2Q9SS(>JXK5*]G?*:_:>JC=0'\$?=1W M3DDO!W)H1C\_+5_JB^4681 B'/C40P!@W^4N0:@S3EU NZOT32BGM%&I8?WZ M GTUS=P/YJ=B>:]\+[X98DT(IEE&;0EEG!P)90=Y3OK88=+61>5V^"/HH;I3 M2CJHR9FA!;!'/(0]-R@C53=B7%"/TLYH[+&@70#SU(CR736GOOSMD.DL?I-T M+;'L_4,MU&0)_B,,/'EGU!9J:AQ)OV9==J-E=2CY0Z7Q^U'-?>A%7+CEN*;E M^E 7_@>I@'W '=#I%2PIFG"\L)KC\JI8=U< MS_+2HS\#B9R'[@QUXO0991.KK28G@7-I,#6=M-M65C1U -$]PCM& M\\U#G4?Q-!M_<"@OW-Z^<)"UYS"Z4A:?(PPH)9B"\I?E(M&+V]=]<<1BZ>C( MB"VKN94&7K5:VP-T.H0:Q5W&%G%7:>M?RIEC?1Y#UZQ+;Y=UIOF2KO5O;O78 M7^#A>PP3S^-A*#C'<2PXZXR$S%>Z'UKQTY9#(_+E"[_]HEBGKTB.G"99Y$5- M?=J;A:82F=<\],B))F'S$ Y=\*=U]$,X4!,#]I3GKRZL%S3RO0"("$8H%B$. MPJBSA0A6JN74LV!9&EHXSK(&]Z\Z&J',F8I4V*1+1S%NG(ZQ::7CA)>K"J++ MXYR$1-N'LWHRC!'IEXJ7Q3>2KJO_X_]XVCPOMU46B>S8,L]?RE5']TJRH*6L M<2@ ]D08,Y?0SC9DKMJCQ$8LVI:=$EU]S]^J^D5RP*GXJK 9=N4$:7QBU01J MSVG]BR.(-]6V6(=RBD?;I9CKD3"SS,]#T@S[=/JJKP7&I".IY^5F6UW-);+\ M2VGX2[)ZRNOWR5K)7< (NPA$/O2Q+X!/(\Y1:Q?[-%2Z&GVX-1%(]-#V<4LF@:U0V%0.P#MN[NRQ_5Y3HG .\?5PV/6FQ.O@=WXZ3)Y8%F@4I)\1J+147=Z@C\?$1@B6PJ MR>IAJ4^M3) [$Z$RXLJI1IGC1U:>WI?A1%H2^5):6K@DH)0#$ 0^<:. EP&= MVYD(0RI4Y$CIPY;E9X]EW%%R3$'/J-!B:AZC0 ]Z9J"G*);@'2Y@W\_V@1_$ M+'(YH3".N8]1W&6 L1="M?([]<_;+KVKGSY8O4K,*E;=:5 F-\5:9DMM8CU^ M(V*BR?0M'WU5=OKDS4,RACAP6ETWE NM?9T%Y 'U>.AZ@E6;R,CW(MS:("R( M_,4NVRVW&OLY5[^L)!I[$-)CX;;Z)X-$0Y$HC4T%,'Y<1BT^"$,?!E3'"+OS$"$SKF06>M^04TLBK[-) M!?;T#Q^I6K*]$-I7?F_KRN^\JQI_*G]S)<09X5S-"5M]@;\1EN4ZQ#&0Q9V MZ3M"<*2T7VG.JN71UP%U=LOO6@L*@_S*Q0G34*L6-.Q9+4'N4Q?U9L !WKBB M)LU:C\"99WX>8F?!K\QVGU430;%)-[ODP^:Y.A;S^H+J*KZ)*0N81WP H,^! M"$&$@\ZHH#A>/"?YUTQ6^P8:4QF5Q[@4]AKVE[$OVZ&IO" :2JBU7FX_P:JHGZD>33-$\3R$S)0SF95NJ+TA="2/$64D<,,8^ P(C'R* M ][9BI&KM/^I9V&4;:&!VT$JA"GO"%GB:LBFT%1!U5E6Y+:&-%BMSWB A#-\"^'P5\G[:E6(1$)5@P9M1R_/#A/:'O/[R_?<^_W#B? M>'_]R_O;_\?-2TQURQR:C-)BZCIT1'$_;[1[F6R,X6RC/6(F7'2YR%WYMW* M+'=6;XX[_: 4/$4]! * ME07-)GO:$C;]H>C+#,E)EBZMLQ,I;4>E;Z@TC/MN#'"C&J=S.?D M.4F?D@4M/\M@.1C#J!R0$,<>['(WS!6ATCUIJM\>J^8E;_ T5Y0\%;OLH=I[ M63]7E\QKEL%(TR0QRXFAA0Y$*O"'Y_,?/19G"U4L T]ID;T" 0$,;8 M[>P&0"T0&6[-=OG'23&\ML08X%5.<<:E5$V WCS4L8,<3T/ MP3+H3^])@^%,J:ZBWJ>K-P:7FNJN!5I\H>!58C5YK>X4KB;794);GH5[& MO+FP=C/#DE*][;&E@U1RX5$W=B$*(X! X$/F9LAUYU2>DV M2^_?U= YB4C+G&(5$QV*KY>RU-4];EGN6G+[@:3NH\=,F$(^?*=$UP MHY%9.K)%.7,19( 0X<$0^H#XN+,5Q1[53"XI6!@EOV1 @S3Y4TXR6:)N0)YI M*LU1E9MA),Y#:0;Z<#GGI,V(AKXL(@Q"QJ,8>%"$%,0A]KMXRN,^@YJJ' MG[-=X@#P9\5'.H;P*JG;+["-?(+')<)ZE$<$[3.0X&,>'+ZQH8Q M=N2OKFL30/4Q@>8-CR! 80ATA.46&Z M<="-Z[I.\6V95T=GGG;?LGSSS_*OJP&69FGB9$^[8E?^KFP,U:OL--B5TR?; MQ*KITH'3+PVG-: ;YWU1/"7KL2^M>\-,CR -X7$>0C3(@S6?5?',G3C5/^W6.RVFV>DZWBT_/J M+2(?25EK#/7PJ6R'Z37JE),K$9,6??-0)WWX9V*C 3Q(5_6OU_5#TW2Z_+S#F+D.4^0+1P/,AC'A73PY#H?:4F6G;MN.WH^&8->] '0-V MMB56Y0/B9LF7#.LFY%TQQCNBO*E4>H6UJZ[\H8+[Y[JHTLGNJF++T<_0JA#: M%P%::IIY"*@U[]Z>PK7(HJRTOKTO:!&X/(PY 2R$U4UJE! HC@P!E:(%C<^/ M4KM0'.'ZO_XE\D#X/^I7;'8COQ+YEI^><3> S'D,K2$.9,8ZEMDK 1>0NF[$ ML CK$_(>=6'4G?: @'.EX3+8V-B%/W5&6F,P6:):+K08E66U6.+\M7[SNLM/ MKL)H&+/ST"MS[BC>V:?(TS4MV^1?=XN/AWVC3Q^+PV5R\T(EM]C=RE&+'5T\ M=C[] KQ(ZHLH 0H.I7=''O.1,__^8/X\<&%P#,U(0U\P2*=GR9,$<.TJ/G2 MD_$;2/'ASW4IXB6#RM_38KMBOZY_?C]???BZ6MXW3S,!J:JR8H3RG*(44@ Y MZ&+%16JY;.\2(?C:_4%4=%1EN[3N9)WI^GIHUVP7V:T,"[2^_H8GO8OL0SR< M1FTR,(=7R^W#';$ER]^6NP?6'HU5G^JN2J'#Y_1?](E^7\KO.[K2JV2 \"P7 M)",2B8)P(3%/&B4R!C&$+MSQ&7\D*D5_*LU1)_JFN:6D'B@\P.1]MUZH M)MG\B%JM-]%?RNI^,W]Z6-Y&[]9WU>:Q?E?6_?WS\GZ]O%O>ZLN\NY:T7&WS MT@1FM!W;?3NZMNJB@[SHJ$_A]%H@-3"M;P;?H^73 *77C%[.\7MWRVBB3,Z7 MFWK/J:RJW;K:E8>1=B$PAJ+(29+A5%"08YFV]7!!>7;I,JN!OQZNKVE-S?[H MJ%/E-F4VP#J+6;-Q+'2;.'.TTFSR[&SBY^;/ACLU@2DT#TE47I\>RPN2NWA' M?&V/_,I4_08080)F%!0BSXLL[F(65#*; MI<[$MG8SS"W)?4;U5$1^#)Y&+>0IEY=7)'MTR*C^X>V+K_M/-;(1ZYT:@YX, M=P[,)$4A@.0 2KU"*06/$0(%8H6D,1+4J"3R&C!Z,:VW;EV+:\_1_WU;=_5/GJ2JS0?Z@1=5* ]7GQ!H^\6'==]/A)H?+X M*)D#Y16\WB_7Y;M=^;B=Q0+G$N",49C 7" *1-(&2^-,&IW#,C!$8*B\]9K6 MXJ):G057AKAXF2PC&6C'%E?O?.#EO"%G ./!P>LCQD<2E=>GRKYN^;*9K[?U M%\C-)/H,Q01SPA%.D<"%3#F-<1L*I,SLL*=! <:J6X["VA4D^ZK%WCSSJB6H M;XY5B[EE/FN6ETY>'#!8JX MNC8=B#AG\ 9#AKEA@I#/Y>U^H\J?)/WZ9;E3(ZLLI@RK\93 &,=0I#&'K N1 MD=2X#K'^X<#0J$7HS[N3])>OOT:=/'-DV#MUF15!3;*#A*T_/A#Q,OTS;'!V MZ?I0<)=>>7A*[&<_;JN- DT]"OJ\F^]*IJ]QW_Q@U:*"L MSYF3'I/7\O-#.(X M3RB@JGP2A,A"#<+R+EZ*X]@.8*Y1QD&7OC'PN;RHT6?+*V(4A/\Y83>^J_XN9 #FC%#$>%P#(/ 4HR0Y\DUA8 M3^F:_.AHT[CJWW28N37RQ6*VUKT?R!^GP:#K=WMWZ:\J=^?\S3L_62S4P[%M_^/].G_P>,.07HH, M,7 J.!F4PRNN#'?$&C!,_?'#YDOUYWJ6B3BFL, <("F)1(3)P\0GD_I@4@>\ M6/S^R'#1RO3DOM;F"!8;\RRQ$LBW85 QLLP[4(Y6F.#$P;B)P<0E@W,H<7;# M&B3U.LJ'S<=-]6VI\IVE22I5-819'*:B)7+"&3@, M.*;>>BW&DAQVQEQF13!/[.A@:(7=,)P8V>8?*"=F M&"'%Q;RI0<4IA[-8<7?$!"Q?-G-]6]/G'X]?J]6,P(1SO;L$YZ1@$&(N8/?[ M)"N,EU#L?C4P0%HQ4:/&'!F6UES&1#A7[-!@:(@/&#Q+^0P W&RY?J=WU%T- M?2!LURP^E?=+??[@>O?[_+&<@90S@6(L@=PW"T:SK8V&8_%?K#H-\,(<$ M*_45/ZMWZT7Y_?^4/V82<+: 6@DMN1PG;7Q\'$ZVJJ)85 M*5VVH+ VS904(?UR0H6Y5?Y@\<*$7EJX&C857#CK?\6+84X8+5'N-YMGDQYB MO>#S73EC!19I3E+(($KBN&"\Z!9."@0RX]&#-KF<3=$I:I+59+&0Z MVV>PJ#F&5GN/./%N:7/H=9='R7#4Z@\/DJV%JGQZD]:DE1J\FV[K"SRK3H".:24\5A M9I"_:N,T^]Y2P\FFZ\-AB/A71<8 #RR \#A?K>A^NUR7V^T, ZJO#,H1#,*#?Y@\J8AO5 99N%4X#(PBU>0 M\>&*Q=1H,Q(Z7/*KOS79;V>9BI7$I&")Q"G7AW'(;B:6=-W(LYXO=732>-HTO(ENLZ>V_GF<1'W3DOZYU&$N3@4Z0]-X/;/JPQ>; M0XA5AYW?[I;?2C[?S=OH,XS2#&,4\Y1!!$3.I.PVJ%+&H.57KHY!QL'.B3@] M73CO^I']4<-N3IIB9P03G;!C[9_/ X7?LJ07.P-=G IVAJ;QQMG!'GRQ.P-L MP^:[\K[:_)AEF60X$2B1 &8 4UFDW0".0>LKW^Q^>QS(U)JB3I3+86 6;ID2 M)9Q13B Q],COJ6"'_'NIX>;45&#AJ/[-X\%<7; 8"%6/C_KX\NKV[Y\?YNJQ M^;#?;?6%MZH8FE&&$V=IJ@39;G_UN>QK@PR5([+>_W<_G3S-]/\MC M61\BI#^\(5_UCMO;W2R1".0XQ3+G1Z!J^S+QN M#_&61>7W$3/K+]O-;O9Q4RWVM[L/F\_EYMORMB3?E]M9@B1+TQC&L<@DSZ2( M(6[#9'E.C+:+._]XX)=JJRE294K4RE+=10DSO _>W;1^NHSBEQU6'*PRH8K* M](0HZF\O:7+.BC/'BX&&B,DL'<>.'+)-M\D>>U(/TX&.#@9 MI@S)X358!CMRB2[+S=?=C%7;777WU(3'N+U6U.(7W MYVJU((]ZV\M_-D\TRJD@# /)9,)!AM.8T3:X_IO1]SF>0P9F[JD6W2_FM_^Q M7V[*1;14/6M]O_RZ*J/Y=EON#'?%^3;<;";J"E[; _LF.A4S[GR4F4$]TU.> M'9[&;)7OI*J@3Z4=\3Z5VU+]NP\J,E=H755/^F4IOC^5ZVTYRPN9%7I!"F=9 M4; 8T%QT,46<2!O0#8L4F&^=N'K,M3C*&[?[]5K4T^O\6#N-SN8IERK$PV?7 MM3Z7*_7?WJN0?YUO_E[J3;-=P RF3)(\)Z+($.5IJB(? H($V/2K 6&"K\?6 MRNH^]=AI&[='G3>GISMY<'0:?;^4H%)(O'Y;H^#4CO M!CWTW1@S&,<($R$R]684"!RB0DR-OHSU%2MP?VKEU?UI_DS@N)WJ@DT]/59G7W[C"H(_68[O=JW0Z_ZT*4QA(6#!288AEG&0,L M[L(7*#:Z_-Q[T)]L_.O?=(/9R6OY;3<&?FGU46?4"+V)GDF]EN$6DYS7,MYM M[M-; YA-BEJ8"B)0EL9"2 M%UTD !*C[31#?C\P.XX=8EEKHC+ MK1J6I$C"-!$4*[FYON@%'!3SQ.Q^R"GH#-Q_V_?;UUI_VX^CG<[ KC2X:E.: ME1@_2RO:E2K/"I1(4R(ZIA8=<^N:N/WWZ_3J.9B3=*(NGVM\P!2D87I> U-X M'*;Q(IF$$V]^C#6%UK%[F2DE[3N3ENOR;KF;T9PG/"N(%"+-&">P0(>R4^;< M:B[*-<8X+Q'UVHA^^=I(^K6;EG)YC3B8:/,*".N?$[Z5I&Z**OJE537RDPR($)DXMP@XMCDZ9@26\2798Z?3H.TN;0V!NHG[/@C#E M35MZB#+,QFGP9& .E<\':QA+^'*UWY6+&7+W\KE M_8/Z>?)-C>'NR]_WCU_+S8>[5\=8-8R+XUS@-%%\2TF1ZH\38+=7@,J,&AT. M'B;R]&H;S\Z:\>EZIMI1J],9M4*C1JG>E?3Z>+RKE$E63O9 +DR+3 -]@7*K MQGBFO6"R9?/K0_\P #EF-%:F%A*1#&1<'HI!F%M]7^4[]A3+-N_^#L+E*-8& M!>95*D!+-^VA.;A=)HW-X=F9@=.3BT:?'XC_V"]W/]3OWU;;W6.Y>ZA4I&^E M_O-ZMSTERNYU]7I9PO-_\Z7^U+\ECMU[L92RA% M*)&"L527IY((WNFA&;#:?A9.1> "L>V31^71GXWTJ-4>G8J/M/JHEE\?H+$W MO2AGA-8RG#.<1$,YO:L"M%&8N4=7B_MF)X,WVS2JT1'R?#G#.9*SUKM$^')[ MNZJV^TUY>(/P-&&2HEC5OQCBC*>"B3HB)RD%(K/=Y. 08I2-#D==5SXS^TV/ M3#8\#'!V&AW12R;G-CX,=F= 9_I2?M]1E>G?9S)!25:(&!&:D!3'(,]Q&S)# M+';8 .P8:)S-5R\[EM87U0(-QW=^3'5&5!@_O3#*Q,JQ*'6PR0Y3]NY.EE,. MJ5P&E:L_1A-3QS#UUS(O/Y$^0))*AM,4LI[ M2E7 A]#R@+K;AW*Q7Y4?[N1RO=R5[Y??RL5+#5_T &N6BH+F><9JQ/(,(!*S M3D J[$Z\]1@V<'W6*=7+9XW6WVJQ;_7 6K!EO>:S :\6A[F$,% MC4WLJ?0"M,0TZKX0B;T\A#"4=Z;D[ E+?_QU_N_5AJWFVVU]HPQ!,>"<)3D& M0C$\PXC*5@$AN;2:S/<9-S [+W3R_;V')XAD=*L +1@69[Q%&>T4X&S M@G@BJ5/LJ]+TYEF'UJHMK]D*UB*#L1J\,7RBU:4=QN;K6X:Z,790TTR>L\.R M,V>M!Q=->?MQOBO7NW+QI;Q]6%>KZO['7TN]UV^60?T_B"M UV,]I,&IX&I7GY\R..E\V\T5]>_FV#<,DB5-0")SS'+"$@C0]P(T3;'6J MAO6/!Z9,K:=^\UL>PF3ODAE4@AID!Y,3;ZX$D9=F],##V;=I0,-=?N7I^;&\ M>&^_W56/Y>93N5)T>ETD-;$%@9F*FE+$N%1_3-,8=;%CE%E-I?F)&+IH:47^ MUJI\:P;\4D\*Z;<9@\:WV@Y,/EP.4&(=1N7Y.;,^#/NV>GPJ=R6YWY1E M_8%4&Y G/*8ISP"4B%,NJ<1Q%Y!E=F77@#"!"714%AVE.3)HB)EF%!K)1SL. M.5H8ZGCQ,P;UL,B#J].@D8]$7I\P[L<;#\N#[Y?KLCXF=H93%%, 8!K[NMX@\M-*J5^EOZLW![\'I?&*.][I\P\GCL9;V#;VYK M>?:V3X-S?E,R7[5S]BD"S5-^W&248PPA)*D>,N+(7(:D/NX&!7 MWOQ0B_1&.T-_!Y/.O[5^MS+TNSHVWVHU;FRS,WKR7+-,QYQI+CYYX!FYO=T_ M[NOIMM/[*& M[F8LQ9P5.(.QE 0*PI"J7]N@),;);*$2Z[%OO.MW MR*UKVE@[^6YHE8QYE[/WR'A'I7HZRLVF7'S>5;=_;XY*)/O=0[59_F>YF F8 M4$!80N(LAEF:) "CYAR:6'"!K4J8@:$"ERL'==%6R[N)MLUIH_.#0LN]E@.- M-2M)1O34KOPXVOFYL;,]O)5H_KV8/IQ>!KD\I7,R_V8/CT:0J[3 M0UY)EA5<(!X#Q'.)><8%Z*(2EL=#T643ZTKLJHX2A\/+REMW>H6RU0^^/A@X M.AJ_S(Z8]F7R= GFE(T!PMQ=,MXT6CT^5NLZY,?YYL/F\TZ/JNJ# +M;468\ M%Y)C/9N5%83Q3!8)[2*#O+":)_<1+_2&T5IB![*G^2;ZIN59;@[UX:L9P\:V MU(YCK9LMQ)1 U4.C1F)SC.GQ-J61-X9>MJUO6ZA'TZ?!-:\9O=P2ZMTM![Z] MJ@H93$5,U1"6Y0E/"02YE%W$#"#FR#7K.*/R;."@:8\BQ+BC::Y,!NU<)UR&6>KX9@_EYO!7^\WU)EKZ7++ADHNY$X634RJ7 M".7NC]&QQ\UBVDHOIBT/BVG-/I1M>_9>=7>Z":7\_E2NMV5SYAX 20IIDDFJ M5[&AQ$I)+4C &'&8FT!L!!GC[%JLU4?+E]MY%/1.3KD\S2%JD[ [4G2,9NL' MY<1:S ZC__4:R^(H[.DTFML!V<$;S^SL[$$VOO%R'+%M)G#.]DB)5J,_]W:C M@P]/Y4;%6M^+)E;[A94LXH+DE#,D",*%4 ,2W@7C$%I-]SF&"/RZ/*B*1-U'FV.U8<"*/TSSC5WU3[;E1BC_ MP[2@VQ#@M"&BNVH3_>1C@O<]G_..W&@_\=C (5D?XP-7CWU\3'>BIBTB/I7Z M2&'5//JVC.WM?/5OY7PS2V($"Y9)B:E, Y("9\RIUMOO9'9MJU^1A9;YSB(OFZ.!N2M>EC+ M61Q+(+@@A#" TIBD:AAP4!,S$9BX1AJ",S>-@S/7S.Q@U/7N\WCO@:C@"2]5=9AE(@! L15 2F@")4G*8>V&0I6$!;"0A M/'^3T/PULSH4?KV[/!I]M?*IPU=K],I>J^;Z6=%KE^1@\CIX&A"\ZM^=I92@ M+(=(TB17;P&!"4&MF#03- D,7A,)X<&;!@>OD=7!P.O;Y?' J_YO)@]>]>_Z M!:]-<_VTX+5*8GQGMC?BF_[ZARY^\S M?2Y(G#-.LYS'"!GUXZ2XNZN MO-TI6K_3M]V57^;?/\UWI5:R7.^7Z_OV$ZUJO9UE4" ]UYX5N9 %EEP D!*1 M2":E$F0US^TQ;&!2'I1&C=1(:8VTV.A3J9^AY6I9"[W19R/>JK+)#I4^_3># MY96LM\.E/]>#\-+$8#P?'_[^#&*MA I#7>YN,P][Q/TNQ=M47?ZU:Z";L96 ),WC)"$D)UG&"UB0@PPBK*X<\AY\F@SN_1IBI%;Q3V#O M#3(*@,?_,L764T_XM6J>GX^^=ND-@*^#CT'8J[?XT80D29Y#4K"88 JPD+B5 M 7*<\&#L-0D^4?;V[;L=J54"L-=W@XS#WM'W0-MZZHN]-LWS$[+7*KTA[+7W MT3=[G^^Q%D3$O* %3 B%+$<(,=YID3PWVMT<5L'D*&SZ#<28K>07R.$:*#25 MK_I]BI.]'@#MUEP_%Z4=@4Z-R& I?]MXO>+W:'IBUTV2K!YP:-\+/15#SM!RA:>F;%T[^RWJQW-Y6 M^_6N7(COM^I?)8_Z;[,D27D&"D1@C 0A%,0%[+2D/B=UG15,@*"GVJ-&?-2H M]XA3]R;RP-916L<_:!T:9GSJGO/6%<&#V^HGX/'P'&W@[,E1Z[NPGJOX7?FV MWVS46V(&D$A9@7$>RSCG.90H1VWZ>JG<[;U=&!_ED^CLWK,Y]S=4)Z<,NV$]:6SG\HG]4 ^J, ?-]7]9OYX MO%^^(4 R8SR/20*0+ JA=YG*0@6NHZ=2,%[8%$B^8@8NB6J9T5%GU J]B8Y2 MG>H?;YZ;53S7L-NNQO'A=!#V&5K70T#?YD^#@]ZSJL(^LH.8N"#KQ:=RM]R4 M"[[?*$1_+#?+:M'FXR*:KQ=1 M*S=J]$:-X.[B^JOVW5XSS3NPGS:99"_VE%I_5_;IG]_^_*_SU;Z<(0IH"F3" M4BAB0 6&5#8*LAAE'/OOSF9QI]2;:\53[,RUL,%]V:Y!?J:N;)F94T]V<<^X M([?7\GVX8_/M@UQ5?_[O[A_WJ_FN7'S8/90;5CT^ M;48Q CF2>0LV8F6I 4"60U^WLMC:$! M<7*AIDXLTIE%36I1EUNT7$M&S_+H##G[1*?[:7L,9.1^]<[4GPG#H M]1,\#)9#M:L_!V'>+V$:JN]==.5'8R+OK6N[\/(==VT]CN]#KMZ]W^;-"2'; MW:8^T'![# \(!USF>48%0HAFDA2R"\]Q;+5MSUO0$=]81Z71B52/;Y^A_MN^ M3D:TWOW],-SUP*SO=]$(WIX:8FHT]I766;QZ]=6?-Q5 45O6_:XS -&QEW42=L.B/3IK;:9?V)IHQ;@S_ M[)#F9%W(M,#JJ%N3H-+@[-X^Q#*@:X8G2#/E]O;5;7=;THZWRYOR7K! MEZN]*AY_+W=-M?BQW-2SGP<5*20P1XPFA'(B4%((1%*%O5QQ3U\_8G+&>8"P MX3K846Q4JXV4W*C5&RG!W5A126Y6$JS9%:PI+(XYOW*3N!US?M(TO[6-,_?0 M.&9GG=L[]@8)0WL_@;/.0V97C?,$6Q#U9(BNAM[[YH'^9HRUHI(LSY/8^(J.\%+&&B-_N(M.4M!_ M?4WB+H^ZJS>9=#V^3L:&Q2,THL%;L>[>FVZP/*WJ%DU6)G4B0YBC/&24PXQ@04%'0:,"RDW>==?F/;(,+I4Z]. M[F_S1F^TK85&U5'IN(L+5O[U+#F$:8=I+$0$RJT:XTGVT)-;MKP20A;_OM_N M]%MR)HJ,Q"S).&")Y( R)>TP?DBAU7=BH30$KLUKA7K30UG?VJ-W0I2/3ZOJ M1ZDZ>;W/NGJJ[^JII]+5#^TVRUM=!VS[OY(8MYW,5FNGT$1V%7>G.&HE1XWF M0S'6J(Y.9$='W1,@\F5S;=GLL;DF3&F?69KPVKNK VNPJ#3#M2JS[_YT]2BYWST;X:&]PB$^[I/K(S MJ\@\N6A\>>EQ3%>';.H_@%"*F) HS^,,(Y)@1+M8(LMCNU&46XS@HZ5FTF39 M;#5X4J_KNH>.? OF6];T=+UA5DZC@PW,X>4UEAX<<>TL;5^=D0(C"=,B)@3+ MN& ,\KB+1O(,#^LNIE&"=YCNU3:M+M.JLN@TMH9.L]M89W&AX[BY8MIUR'JW M7+2#V,_E[7ZSW"W+K?C>? +37-U],O/X4EQ[:!2.,YZD*:-Y*F7&D2IU#^_ M5.1&NVS&511X7N TB>B81=2E$>GGZ-EJ077W?&V@3N;&ZLUI M-XW?NV?!D\]Y_3VYS]>'3.NK6_K U:WG\K; MNOYM=;_6)PG.8ACCF!:2\I0) "D""'4B]$?'-J6'Y]"!:Y!.;?2GDAMU M>I^=.=QJCHZB[>H0WVUA5I!]I R4*-,@YVADJM&>; ] M\G7&L20R39'("TI9#"C'.B:$ J0REU;'H0Z+=&UZ>B3E95<]@-&KH9XY."'F MN2+.V-Z?@&CFN=@ S-(A\]-?Y[M2[[AKZ(*3(!0.X*#(!L@P0!K,\ M;81(("&T&F@%"!^Z7-"][Z[N??7B4'6XZ65^T/H_[4J&$&U@AKLKVV\'07U& M2>U^)S?Z^B/Z12N.ENM?3^[5.JJ^&B#MC>W!9L!6F@9,0R98C?;$6\X?'[8/ M;[]4>JRWOEW6DVHG1X]6UE(A @D%N1HA I)E$HI"ME)S(&.C;ZNO*C#TSHUC M3M&NBC9=5M%:L:7=8:7^N?[;K2;-TPEIW@+]3?VOJIIL]]!]);+5?YW?_L=^ MN5WJY0?+=\%U'@O#W1Y3?R(L-W\\?Q@."9T>AM6>:JW^ZY_ES1.BD?K63:[Y M3$SC[75="UZNTUR_/4S?@+Q\4@!>UHNTZL^K4O^!K/6=4)O=\C^;Q=N4414E M3I6 K. 2,Q07;6B<%]1J&M)+P,!OJ%.-]6>%\Q-Q=J\2/_Z:O1I&M]8.]:?R M;J*#P-I@8F)P$%2;F-:#7J^>3P.E?E.J CZCEE.7[4<2Y4)OX"O7VR980CE# M"!1Q#GF".(8%@ETP4$"K-]TY:^V=UA/DZ#0$.3>#FCZ\,34\JH$F^C+QWF9?.?[Q3F M[LK-1I=WNOC[,O]>;FUMGH<;\F+?ND4_JJOCCIXW8ZF M:YGC4LS(N1ZH^75^&HSSG%,5\EFU(V!]D9.^:ET-<)MHXKNF;CG#@L(88HYR MG&=YRHJ$95T\FB;<@7KNP<8A7:W/#FH#_#,#66#/G.#57&K7BCI,_+6Z?AT7 M5V?]Z4'4<$^G@24/>52^G[:A!=AA5HW-GY:[^>HPI0;2C!4LPW&1QT+@/"_2 MCG]%GE)@,_3S&#;TXOF#^ENYU;7!R7+*=EONFC.T5NT6(CV!_M__&TZ3]']% MO^QU-='\Y- 2S;TY7.NT45K"2[%V7,5HI5YM"P,U EB*8Y%R5@ERD L68 MB2XX$+ 82BFGH,%QU

W39?0K=CV<'#5"=[G8>HP7SU.CRM?3[9:M?O]%@# MTS>\LQN4#C%_JJ ;EM3EP>APSX8/1#_.?]3UH$"T2!..)C#+ MT+")/-MHH?=/=R.BIT:/KQ&GL9E#AYLA?/0[UOQXP=F1!YJM'*=1IJW94\69 M.<^TQ *"E,\SSEJ< @BT71S>:1I.#9P%4)QZCA MH:85166S-M2L1%1UN7&R'N&EIG.Q?%!9%]AMCY5=UPKO#2P?L[A[[:!]?3>@ M%:;*Q,%YF55Y@YWS_QWT#!&1$IS&.05$%)(+?;I!*X"(A-KRW Z5#M\Z3_4#YQYC>0F'HZ M7%RQ+*3ZOWDB$%M,(BB M8]GOE:8'T5/X?M?>6'O ^FBE28/62X)FP/7GI2EX/\Y_M-_W$GW,P*94DA3U M=S\^JH=^1]8+H?[I4WTQ'4C2)&4YRA@72@@IB*0' 4F>.VR1\1A]I(TRB\6R MN:6SNM/%:RVV'N.7G5([Z/KTWPRV8WON!-E.I#XLH949=3IOHEKI36V[N&A[ M$+":F]@#U M,0V0ADBL"OX4NX%35AL5^K8L%UM]IT8]T? &QF>YY(5(H/Y2 M#R40QW&2=9O$"5;\'D!/7Q+&06BS;;O>M5W/U;FL=(WRI4KP-10SL-2.J[8::%4^_9G6%J&!>-P7H2^O-\57ZX:R9O M:TR\)8- E'(N,O6_%.<)Q AT?*J]!0SQ>DWS+?GZS/?/K>_MXE.M]V8*@+4TM(^PH=IF(H@-EMY+QH;U MT7G83_?;Y;I4*K:_E^V)P>U_LYC)).8R'(QOKQ:QYJWO@#,"@IG"< QBK%8;/ AR5UA=#'H,=(FYD '^TQ$;(&2>W2;( __YR)2K[-ERN]$4N5TYKTQSLX9P@P M%F-:9) + K A(2'PAFAW&YSN\_(P7>X?U3__&&N-T:ICGLL4!W'_U[,=D1F M:)>]$?,@]#?U&ONM'B,?-35BA]F!= M]MR,P%>RVPZZ#GNNIKK1RLL&*^.FF 9'0R3FO*'*TKN!M)3+]7Q]>V9'E\)U MPE".>48R(?*4,- )*4@F/>Q@'1)^Y!VL=YU4[SM8![7!((J.9;]7FAY$3W@' M:X^Q]H#UT4J3!JV7!,V Z\]+I]D$?4. W@&VG4$DBQ2S5$JD:N!$'PE,#NMF M.;."JV.(4=?^R\>G5?6C+*.M%A@]:84#I@(LC'08Z8?Q<-! OG;M8Z]KX4:XM[M\4C_^UGMY)TG38;MJS4:M;+2TIU="*[ MWB,QCE.-V3[3TSI26XNZNO-U]N!/?;^LO%#^I@O3#NMXYNE[H_]!?E'Z;KS3* M9PAF>9Y)*&$20YS1+!$=L%E,@+"I KT&#EP/-EKK;XQ:M=%&R8UNV[MX5"G3 M;(5?+YH_E$?M=B#UVQQF*+U:2]C!]-@(G=!(*]7FL\[\^@_"P/P@-+4QLH>G M0=IC&D0-DUHUPO-L1]6W@WTL-\MJ\?*8OED,4<'S%(&T Q 2)#H=N:S L78 MI@KU&GB$.G1Y.,]R<7J>I2>:^FT&,YI>K07L:'H6F3=1HS5ZXZC1<7%JXV0/ M3H,TR#1P&B:U:H0'V@=.B2J=-YL?JDK^U_EJ7\[R#*0 QD62%B@C.80)QUUL MRF Q>ZHU?][--[LA-+6-:].)7TJT[\\OB7D3S7?1U_)^N5[KD:8^P*F.,86^ M_,))ZT[LVA)3[KW..1EUVV&.^>VOG*6<,40 92)!!14H[\[49 3&LNVO8FWX M1:"?J/:]M1/HJ:^6^NCT_\J]U+0%?J9>:IR34R^U<\RTEW[>/SVM2CU)/U]I M 7)5_?EN?5=M'NO%QL,&-DPSFD/."(5Q2E'*Q>'+818K)3:S/KYBAEX /)$9 M+9;;VU6UW6_*PYD'>@.O&J<<=%ONV/7FO-F0Y!JFVXU&GOE=XU%KC$Y$7FTK MKJ%Y/53T;?\TN.@]JRKL0VM]WTOU6'Z9?R^W'^?+Q2RAF10%Q1 SF$J.*:"' MR7=!K6]UL?KMP*Q[?M[+\K WS>&^%CO+S. 5TBT[2+7;]FHID=8R^N4JIT;T M ,?5LFF Q5G]Z^M0!KA@O-M ):4ZT(?-1S5D;_]"CD7W=RM5*#ZW>JA%S?+Q4YFM#\,)[[4G[?T97>BI8E>9RK4;: M*"X8$ DA L:ISSCD.'8!LF>0P>F<:?VYG! YZ^::S*=G?-KQUW=#F*'W MBFU@1]U.:.WR:^^/8J,_M-RHUCOR$-C.S![8!FJ5:7 V5'+5*$_V2[J>/F'O MU9_^Z1^Z?Z+^E_[4Y9_^X?\#4$L#!!0 ( &! 4\CW2<=6V8 -\!!0 5 M :7)B="TR,#$Y,#8R.5]P&UL['U;=QNYEMY[?D6G\]RG<;_,FI,L M7#M.W)9CN^<&BJ9+,-,W2D)3;/K\^ ,FB9(F7(E$WT3,7MR4#*.QO?]C8 M #8V_O6_??T\_>E+,5],RMG??X9_ S__5,S&Y?5D=OOWG_]X_XMZ;UZ]^OF_ M_=?_]*__^9=?_K=^]_HG6X[O/Q>SY4]F7HR6Q?5/?TV6GW[ZQW6Q^/.GFWGY M^:=_E/,_)U]&O_RRKO33ZB_3R>S/?TE_?!PMBI^^+B;_LAA_*CZ/7I?CT7+U M[4_+Y=V__/KK7W_]];>O'^?3OY7SVU\1 /C7;:V])=)/OU3%?DF_^@6B7S#\ MV]?%]<\_10EGB]6W:WRD*O[U6?F_\*HTE%+^NOK7;='%9%?!V"S\]7___OK] M2LY?)K/%=? MTS__JL;C^7UQ[;[>%;-%L8C?7C7Q:5[<_/WGR?SC,HH-)6!()J'_RY[BRV]W MQ=]_7DP^WTVCI+\VTA5;+$>3Z:D]>E*KC8Y]&'V+-.0 M6:C9M2EGRSBXXB";'.]33_=G7C[Y?W M\^+WR6SR^?[SNUAT-'T[^K:J\\?LNIA?W17S4:KWNAAM!VJ&[,U\N&UXZAF+ MV@TTU-W9HIQ.KM.PT*-IFCW>?RJ*!-?H/A*JN#[>W[HM=-3AMZ-Y!.]3L9R, M1S5(=59SC8OR?AG_3$J_NGG_*7[Q4SF-=%VX?[^/9FO[CZ=(DR_%J^B[?B[R1:G19JM"K;^9QZW]S332 M=5O,HY>_7 &T6,Y7:X*ZSF"=NNUU\DVY/&[JC]=LKX-IR7!]/RVN;AH'^;2F M>Q.QWG2_-'JP*QUM?WDU>U>,[^?SZ CJT6)2 M=W!F-=J>6+5,X_&:C73PM[*\_FLRG5Y%!V_^*BX79K>3.##48E&LW._5[]<_ M'>OQ&4UU+4+&PK/9KW0MN(\+PF7Q.IK ZZ<%'TSY>NVH/I?SY>2?CSK=I.:; MZ4C7\.TLTCAO:GRE:\$?=%)5:IX21[_1M=#UO(JS&VQ$G/6BX\/H:^V]X?TU MFNY0K?EM7_FF.U-/F7LK--2=Z_OH>'Y[7]RF:?RWHKR=C^X^3<:/YH?(F/>3 MV]GD9C(>S98FEH\=FM?H>';3?8N8,2FW^]6^@=E4>5SP8WF_?%=\*6;WA2D7 MRZN;S0^_SQ7O%LV+>(:;L=[EL==2U)0Q]H2-R(]K*< M?SO>[2<%F_U\[3EJ=_EF.U-7D3N+-]*5]>%+](5'L_%D--WN';[Z?#<:QT&B MKLN[=.JA%F-!4$WPLAIM4*S5GVFPG]3O?;4:[-COH[BLF"R_7=U\?PKV>C+Z M.)G&?SBIPZ>VUJ @M1RL'44;[,+[^[O8R.?5 6-U)G$2?#4::+"[]8;\KK*- M=&(SZ;TKQF4T^VD*2,>:\S@L-T=N=9WXDQOJJ/OU\#VUG98Z;R>+T>WMO+@= MK7==-R7.5D&]]KH5YER%U&JN)5%JF;4CU5KJVMMR.JD32W2\9DL=?.1/_H_[ MZ]M3CK#.:JQ#,JH_5 M:Z9S5435(QJI\;B\7X4CU;4'I[728E^NY9@ES["X?CWZ6#RQ#KOJ3>?S[ZJE:P,R71N ;"7)KM8:[FFT-LUV]FF# M#?>UF#4.\N]E6^OY^.9HWC/F^AAON_X?H4!3-]OQYDTWWN5R.I@WW M^5F3S?7Y#&(LGW>S)@ONYL4B;3 EH_XZ_F)3/K5[SCV@]7>*K\MB=EU1>_ +BY3?5?-K\. MFWY4.XK1J)O[>0K&5A\7JVV3JF?3!,???XZ]"+7K!B0-<=IYXY7@V@)A-;%. M V01,Q;J[\6>ICMDY7R#;^MRI\EL\7;T+4UBT75\+HV=+,;3,D5&?8@:T;$C M?QY&XYP6 Y<$6:$0QT1(X" T6E<882QL'8P>LU#-QS^5\[AP^?O/\.>?XK_< M%%$I:Z-\X.+C+F D&/,$>7>>>Z%)IK+-?J, M$^YEK^8B]?WMO+PI%HO5F;XOM@(<%WI/Q> %= A!Y#0V2E&O@*:5Q!H3V-?@ M[VN\UV; \_'>',P/P[K3.>BDD72@8C!& ^^H9Q)YJ*(-BW]NI!5.P5K#: ^I MT ]&JN9@[I!4JPDC>JKEMZ+0Q:RXF2RWF,RNWY2S<5VS5:>58(G07F +XQ3- MD#/0BRT.@AMW<3:L$5+L-F M -X5\>+2>78]FB<;?'T_7CZY_7U\IJQ5/T C MH(]#&3 M,)&68X8KV;F3N"_;UHVWW ;SVL"]8V.GR]G]HCC3QAVH'*#0+DJ( M %=6 F"L?22UA#GN&?[13%MS.'?%KCU!5\=-V>&* 1B,%5= 8<2!DAQ2*S;2 M2DRUR6 5^6%8U2C&QQGU_(@D_:;BMIW,B_'2WT]O)M-IB@)(48:+'0PY7BDX M(Y5"!OEH8S4#0!+.JIX+*54&.^B/-<,U#G8N3=Z/ING0[.L18E3%@E+80XVE M$X QX;EUBE>]0TJB#"JPBS<4#2#:L1OSZ%K"<;?E4>%@=%S4"HR\5YY9S0$R ML)(J+GEK;;/OX0F_>)XTAFMG;LDJ]&/?KL5 MM-$RYDP\XL>:>%H!O&-C=!*S]LOH#8>&&66<14@H(&CT[C M'3J_7%(UA77WAU>[PH4NYNR*"2&)UQY:[1DAQ#@.UN!SZ AB_9U=/5Q^?R[% M2B5U3K?K-Q(0C(Z4D\H[IST SGJT14)S^&,?:->FR=-=NK;P[\ ,U,Y^VJ$Q M.-"GA[B &H;AI'8"E5PQS81B4>W0.83-9KE)B-04]&M<26LD,5]&LOSDDR?/%6)9IY%ET]IPQA<1)Q MC+'U.L(1BS2KY6/7W,AZ]/4CFC@@Y9DM!2?28EQY:PF'B'),W59.B.JY6/MM MQ1!&?&U-EETBV=7*\_?RRSJ;P.SPF>2["X:+5I80RM,Z:LFM-#"/&X>S@AL!AG-XQX9IBS7V.M\E M[^Z>783H8.'4*D5."G@X41?#8-[FQSBIO%HL[HM#9O&TA@+#7'A/F 64064Y MY]ILT'"&VYRCA:''VPR'DYE:&09'JS#C;%Q M/",!"./*,B@V(1)82Z)[O(1397**NK_Z.)W<4ZHY M8CK.HJ22#TAT(3N.C6CXV;YB/I[]CL*>3R#[V1X$B&NL *384TV2L>1V;2:5 M5MK2(9Q,/K'PVW#.,\XGZS45O$":*@8PIW$.BG@8@"M4TMV*"SZE;(D^>T\L M6]%()X;DM%?7.K0DCQX>VV9C?5LN)NN$R$<-2)WJ@3@JH=9*:AC_&OUX9#U2 M6 HF19P_>K0;FP3X-<(VOBL8-$%&*H0,PWJ_&G(4DY M,'<6U[;JY DA/[O*!^2UB&L9Z 46U'HN&1>5;%3)WDX(N@AN.5/+.\F2AVM7 MG$E9@],4&?^3L@!^&4U7D^;2Q*GL6YPT5Z\G'7+4ZM0/ G@=T7380XD\MP8H M7ZQNP$(""@7! M1!(/B1;.T8W,<<7'TGIL=1'+R8]+APP(\P: >+:'UOK MB*2V\BXEXKC6XO.EWH)ME"O9V/:R/JN[+@O8,1V7( !YDY:KE" A-[(HPP3) MX,GI5V0[OE_4[!R4 6M7%'D[+^^*^?+;V^EH_5YP=/+OTJ;&X4GH4+5 ;+28 M!').**.$FK3;64GJ+,E9?+T,SSA[0=\@O/UD]G@WN?VTO+KY8[%^6?/01'6H M7G >4P8(3')") T %%6R:I]U77^(V6*:84^3D'9%'[O1Q(?1US4*CRYC1=+7 MRCY4NXU (?9.0RH0BY.S<=SP:@&@E,Q*$/LRW.9LCK6%=5=\J]X!/D"GJD@P M! BN,!($4RSES4!*[=+LF/KL4#21=4I56$.PJ1L(*":LVI8\LY">U. MSQS3QR*\H4/1$X'LB@:/O*7TK/2SI]%J'*;7;2( C1Q!RG,.F"1$,+==+VKI M>4X2HJ$OQUL-T6A) 3U0L'X$QX$T'$808>*8HMC'=26)EM=OI83$YRS5AW[D MWCP3]E,M#_:NST:_3]14XU3T^PJ!20FX ]'OH\YZ*RW!;"N=L[6R>[Q\4IVM M\UK9]T\$^64F39,"&6^AT!IK+#UP!E?>H.:$YEBGH4^"[1"I$9R[WEW)X3WSK #>@6J)(':'_.T$E.4)!8NI3J MV% .XGK3"8?)6BH% ^/6FI,9GMJ!BJEMT[%R=H: M2'D*L^25O)QD7=@:]N36#L&:A;O37>S'/:V]E;VS4G >:6 !IEQ "AG!LEI- M**2QSWE.:(!/<;1OM9I"N@=7JA:5=LL6W<3H-ABHE$>88P(5D95LPJ*UGYQ;&H"9![(% ]V@0A(3=.6(BPYQI:+DEE6"-<)L?D9$4LOGRRG AM M9Y?(CJ<_/NV.?X"24L.9Y\1X#/"]C]8IU!S4W07";E2T M0N/8+<0=I0-CE/.X& 4$\KALX$IR7=*,8JD4**ZEZ0P@EF9NT]_V>/"&)0)=F>G'MND5F]'D[B2-*.[270H M'O7^T/''T?[U>YBVUQ,QE/#BW@CE<.!"BOC#)<.@H895AY5TFMC<]*$/:" MSG';85WC^'=XPEMU=+7+$<=)U.2G8K:8?"G6FVBORT7:.KNZV?W$XYDM!2D= M,%0;XJEFB& L7'6:@+G/NC8+7]!Q<$M6L%5E=$7.Y\ "[5 L&^^AQ'EFQ'<&K $0)L*T"JQ &F!1G59A MZ%P6PU[0H7/K>V!-H/_ MQY3Z[U=0?NI6$[&#]F:+S+/'O7,2:N9A4@!A"12 M=/W@@ ?6 EIK:+0L_2I38QTY5P4#@TH23(51B#/L.03$;B6R,B=YP] =Z&8U M_CP?]ODPUYM%%A5K%L7X;[?EEU^OBTDBC$Q_6:6S8 MU\FN'>T=I0+P4$.5WBI@S!/!.=2RZCI ]7)+OG2&G*C$LBDT6R+"NC^V_!S7 M=WM8\+A(4$P@[WFEVZ5V2'4^RCVGH MPY![:@0+>)S;G3/6""NTQ1A6F'E+9(X;-?1,G&TRZ"QT>V-//>?I4+5@69S, M 84:1TNK&#=,5N/$2PUS+@B='O=Z.3PZ'^*.M_D?[8RN>O[="<7V'X>PTW]6 MAI-:]8,TS%'$N>1$8&X)!6J3'P8S0UFM3:]A[?5'VX6='>8XXMHQ;#*IL13I%EO6W =+)M5UMY95, =D2 O3O\.\L%*SBEQE"#'672 M$<*AKF1PU//+($&6]G8SX"S\.G,0Y\7Z!=O8V3T685_1H B(CB[U$"CN!/(8 M(5])1 7*.?L;X$WQ3+/0$(H=7O\>W4^7VZ/OK?2+U/'?B\\?B_D!KM2I'J!! M3DJ)*'1.0(Z %)NH9"PDZB]W5SO\.5_QSR]\-XUMYX>):S\KQ6B6L]5UK<.F MYV"]D"X'QH'H)7,:&@6-AZB2U4%T80D%&K)#34+:%7V>='6O W.P?%!"> 7B M9&PM1YX;DM(!;63C"N4D2QZ@V6E(SV7SR/:P!W9TWGI6-CAD$,%&8V>@,98+ M:C<1EUA*8'+VW0?(EDR][M_C.@O-GJ^_'67+P7H!*^VD!QYRAS"PZ:^5PR\M M9#G,&:![W"QSFD2VK^ML1^FSNT+PW /D 6$4T\-B:M%54F'K,Y)"C! =Z99 MWC0"Z8!NHATW077;")XQAB2VT?IR;1'"L+IYC*4"K-MD@2^,5FVAW/FZRTQ' MB\5FR[ONFNMIG:"TY]2LG@.+BTNC7%QK/DSB.B?@=X!,:GJ]E0EG9U[SHVX> M76@]+QPPQD)SZAA @B-&#:#50%!>N@O9+FY0NT]]YUQ(NW.>_]_]8IUTQY?S M-\5?FWS?[4$7MS4CN!)ERYQ4[J.*MKZ(&M7$"%CZ*;A_BUZYNU'5YE]1VU#_:53QPRZE%D!,-!%&*P1A#D^-]985,OR&(U"W%GGM3^7A_?CSQ6-W" *4,4<,.-0$9A[[8R6T)S M=@L&;\L:X\-3WZMAU#L['YG/(RAEU- M_; I.+M6GY/@1^Q?&Y\+)LX4E&EI'/7&6!W7ZK!"%FB<$UTZP)28#9G) 6BB MG\G[B>!'%ZHU:@<)!>?:4JWC @T@2YG8RHT$N+!HMWZIX,I/&P?[>7QT\ M3;*Q[)0A:P[;^WE:I*QFXC6W5_]XM=J+6;BOQ7P\61RT-Z;U!3JK]'\>I7\-2XL;HK)\GY^\-6. M[+8#08IKJ@B/%>/R=K9JY=C[)&U_.BAJM93&2 LM@=9#IWF%>,I5 M=*$[S/E<'YAF.K/;JXDG21G'[8?1UW],EI_2^C .]OB+U;_JIP(?LM5G-!<0 M$LQ8RQTG'%@O- &5 ^8H\;V]\C1XSG: ]G$>3N8?5Y>Q96Q&KKB5?K.>.U8= M*J;7'TI3?BF>='$U;N;KZ(P_[N(PB3-*_/6'\LG4\D<<18OU_OL.YK7WL8 \ M4(ABI QUN&X.B'6$B=[>CAHL+P>CBZZL9YW'.-Z6\Y7REU&TC_?+=";P MH5SGC3]@2#-;#@(1)#32CE@1H8MS#:Y4EXXCYZ3."5_->YIJL-SK!?BN MC&0<- \CZ(#)^ZY<4"8ZR](189D0BD& A-BZ*0;DI+#->T]JL"1J L=.MXO> M%7?W\_&GY*&J65PP+2.Y=^R*'=L:JME,((0BZCFG$#+G($, 5T>A3F*4-276 M/].1:T;-BMMTX>K#2R)6BV@/BW?'=G%.:"6(*+?%P O%;70,,'"^BA+WEH.L M/##U3W(NGG7G@-U9@,SZ>F7T)-W-39R^KVZ>W%/8A-^^FJUE>;AI<"B&YNQ& M@Z6($8,]Y"GK'U.K##U;E++VP^%EG]YT!OH#-;O->KJXNC&CQ2<_+?]Z>.3L M^Z[UD^UTVZO3DIP^JQ8<0X91 902"GDHL&:*"&:E<8Y1J.N0OS4_.77W[;S\ M,HGXZF]_1&OW:G9U5\Q'B5UJ'(FW?C[O. :G-Q8D=88(*;$C&!-E&*9HC8PG MGK'>4@=U^QY:!F.>^^'MJF#@"SAB/>#1#80<:<<SEO3>=B<9*<%M_U_$/9G.EKXW-!,DZ@)E1'=!7&Z6E$7R%++ONEKP[9 M/ #5=34H;!&5/IZLLV86T6=H!&1V%!"C*CZ7UPG @ M-Y(+*K-RF0S=!/?+I&=)31M75J?Q 2=' #P_=8;:&LZ)!)19R*U@DK-*.B)9 M;_;S!V!?(QKIBF\1H'D1^VJ+]7]?S:J3CC5T'T9?#^X(UZH?%(9:,4* C$Z] M]L9):RO97?24.HGN[WI/;E"D;$-/G9[ZOXGP1:S6O75?T[@ZM&6\MTX03C/ MA.54T.@F&0D-KF34".:LDX:[/SPH+C:EF_YLY!:5S3%QC552_48"0=A(@P60 M%#@G*)6H&H62HOYR=E[6VJHJ/Z@5MD740 M.X95]#DPTMCH2E;A48[-J[]>^9YHW5F]7@AW/OH]SKO)!,*Z2GCB6$W=\[NKDPKG7@!KZGV7?CKZ=/<5NZ@;'M8Q^ MK?"& NJTMI:QK8G'."=3R] ?8NYUECT/_YX-7^S\_#XJ40(!J MHEQZJ-@*7J&@7+UXD<8N#Y>1 1?%QM84T3,=DS.[:"IHYT!C ? H.H(\KLU2 M+E".E8';0>I\-^N4RP_::4X%71$S>A3559+QZKI=%"F.JN6WM]/1;*EFURG] MT]WCQ\QW$+)^(X% !)&A'!OK(AI**J^W*$":\U[J<'=FVF1+V9$JNB:D+^>Q MZ^.BN%[X".C*^]@!6 U6UFPI4&^E@RR==G+(! 05[OX2D3,>]C+N4AJMJ./ MSOCYJ.OO1]/BZF;M&*\V TXDZ(E-A729V5J'XQ]QY"H6/9MJQ&H@LD)O!YAM MKDMJMJN)WB9S?;^8S(HHQ?I*CZG,F;TT)O?%1?1I-IVL%*>4?B.'M?C._G=>?Q&JT$3HP!0DO, MK"-$$N,\V\X9G.>XE_4WA?K:$^^3G(WII*]Y/+K&OX^6J<_?KF[.X^EY+0;I M(5$>4Z\4\-0A+3FHYA(+LM[('6#>N1YG]784,KPMI$:VCH)0VD$%K7<48@ $ MX6B+ @$RAY:GIXCK=D>S0XZVII">:>DGL]%LW-#.YH'& HB#%!I.A<4*.T>1 M,J1"12K<38SNY>]L-J>"7B;XE!P@[8#5GK^W%0+C7B)AD/<\6G^88HO5=JE' M30[!!IBEJ$WU'YJ>S\6[ZZ7,NV+U O:',C\)YKE-!JH(5!)Z0:F*$PT&$; - M0@:RK,"?%[=1V0HQNU%,#SOJ#_E1XI3Q\!1,O4WT/96#9MYI;Z%G%E..F4:D MVJ>U-O[BA]B5;).'C6$_/)^P$5\P"$2)Y,8BY(CW@!" JRG#&*AS,M6/F[Z+UOUJMMI'G5VG_Z2ST2^C:1IS!XAY2C.! M,TPI]LPS"%ATPC%TU0 U0)%NJ=E=#J4F5R0MXMU9:J^=G5TG?WH:/G6 >:68.L M,5P1G1XDE-IQ6D5^&L5 SD;-R1O6:]ZY68>G?SVR[C3D.\M)EPQ08^^D%DP8AKP5FNCMLLGIK"LM0T_$U+C*G]]GR8"Z MLXV3=7:)J_G;Z+!L?E@%6"Q66?[]Y&MQO0Y*JR)_X %ZG=%: %"1=.Y-.266 M*>6YJ!P(Z[7+.?4=8 *FMEG7O@8>F-E]!N#GCY\,*A?PNDO)>WG>T=/2 ]=I M*6VK42.AXAPZ1 W5@ 'K-$".0"%1K65/RYA\.'+Q]_N" 1OHH#-,8$6H!YY; MARJ)O##=W-7H8^^J67T_2U2? 7)GOG/5R??C8C:*T[_Z.CG\PL:.\H%[ @30 M41#DN7%I:B65;,R;;M*P=$^@$Q6[CQ\94'9&DTT7_Y@M[HKQY&927-OR\VAR M,//COCJ!QB4"P1( :+#A//X?5!L9$>)9@9!#ILMY>G[*FH90[=S F.EH$9V) M]>O -8W,TSK!2X!3O":C'F$GK.#IL=2UC!+H;JYNO5A#DPEG9[N(C[IYU,H\ M+QPPP)!#X"U#@"KN-"6XDHIQFO54V(!)H; L' M"ZBQ0ANGF%1Q@>>X%Y54GJ&<,]L!!K0T;4W.Q;'#X)0SGJF0BC IA.16.B4E MIM";2A;G8"=?8<=:ZIO;OIP7D]N9N8^:GXV_?9B/9HLHQ?IM@M5/ MTS57MLF:=7$3ZS3^J'4['0G$$0D\@43"Z,U0XQCTE38\HCGQ"@/T"[ND;\V1 M,PB]]CW*_IA%D*>3?Q;7OT7/.FGC:F:C'KZLWA%,!%M4&!)4$Y9Y0#7&H/<+1TIKN^1T02[5TQ3JO.R0X(@QT@Y+#RNEL'1\F2E0QWN.R$#'!K= MZ;#OL;&]O1[GP<5WM]+G M>8' [4"MIPS%34/=513,XETB#\]I43\ M57A7++9"[CY*WE$J",B 9L H+A0CFHKT%-.F_\;I'.]]@&0X5WEE4P!V1("] M)\0[RP4H2*0_1 (JSQQG),XSE0R.*'09),C2WFX&G(5?FQQX.R^O[\?+J_G[ M8OYE,BX.6()=10/DWB 4/1;@L+?8.\#$1A),J"]98/VTE)BO=344JN!XK1RH#"V,,=U'++#<+ZFFX*RN[W$Q?+J MYK>RO'X\C[TOI]?J<]H8_>>Q3&_U&@B<:J>,(-YX: D6")C*ATX_Y<28#7GR MR#<9K>#;/[O.8E102#-(-(>"$RDUYXY6LS"Q#%S8P4HG+#H1TZZ8\]N\7"RB MAWTS.;2K^ZA4<-1! (PD5@F+.1:6N4H.X++" [/>3!P\-\X'L3O?=%'$;Z5L M'3;.IM-R]224H&QE 803;>R.@!S+M8,,#=]HUYL M<[!VMO@MIM.4QR^ER9__6:3TX\?YL[]2P P9KRA53F*N+4)TBQUQ!.;,1*=G MD'])Y&D,T\YFHF)6S$?3V&%U_7DRFZ0#IA1>3CM%AGO7A3SC8KP-T+J%.; M"%P#SZ0A4FCA <:&&%!))3G(.=B5%TF7EA'N+$ZN>@EX0^]#6W3/R@8:O7J/ MK)=*^L$)**33Z$#EA/+!$4P^FO52. @ MZP3@,C>&F\:T*]X\$#O%F)MR%CM^'_N^87XY6ZPO+#U*0N>^1G\L:G,R&\V_ MK=!*Z<%BS8CX="5VU%BQ.!ZNU\I7@T+<,P1=2I!'*25,DRW.%OJL<)C+WHL> MCE:Z97^49#-(=5QY'-Z2W%,C:&JAQ5)YYQ V5C')M[."IS;+#[OLO>MF$!UV M"@: H8-28BL@ 4(QPPG:R**=LCF!6?"R=Z]S<.R*$VXTGT5;EQ+J5Z\K3<8' MN+&S?$#>$2:E,@@AR)GFCE9111JXK!?2X65O6#>!9U]OE7S$P2R^7/8>=3.(=L68?Q23VT^Q>^I+],)NBS?WGS\6 M\ZN;5<\75_?+Q7(T2V^[';,Z)[43 *!.(!A'#E(2I1 #5NV5:8]U5F:)R]Z] M;A/GGCFW&2C/1#F==?M:"H)$M(T&4872K+T,K?!NT&Z@UN) M#U?;7\T6R_G]ZE*B+9:CR73Q?6%HN[N=U MTF5EM!J(597I0W_;"+=ZFC1M)GR: MW.EO3R[XO2[7J0_TMUV-O9LL_CQV7;*[3@1""9(.<8H-=L@+SJ"J- %]UJL] M ]Q6[X2SY0M19E<3\;X^'TDW?*A:H )*2C#PCA%@K.1&@4K2*/Z%)9,=(H5J ML/Q,;77/R[1-G,;XA_C]HZF-#U4+WBHEA->80^RH@A3:+7Q2B9P8\A?"R].5 MOI=)V?AVQ:1-!KWJA=3XXU^C^?7O1?)>#S#I4+7 HM=,!?/$0&L198[02E(A M;58<^:"9E*/TLC5\NSW,>6:UCTR5!VH%(32G#FKJ)/;:: ,,JN0TT%_8BU(O M8*9L3ED]D_+H3'FP7@#**V(=0.AAN[X&N M!L51/CTK&S0V* '%HA024.I66]]KF; FG;Y9\J68?RQ?)'UR<>W4'.U,)UK+ M7:]3/0@J%5.,&B>U-,Q8ZUTE.4,J9XH;8 3@"_#;6]#:4/AZU).OUT D,95 M>EQ(&\RE] X 4VV12P/RPG^&Q]EF"7$BV\Y"O"N^;8:K+1:3VUD=B[B[0@ M. TAH@@P*@Q6T66HI". Y^RF#C >]078P$;TU!\+C]JY?56"X0BE]]<\-0A: M"REVE<^JI-07]I1NKIJ/LN8L5/L\KSP\#L\XR3S>8$!*(PO3.VPZ9?6$PK-J MZE!0F)R[UP.,MWX!UJ\3/79L'1_WMJYY?%XG0 EPYPY093$W@ +JY&L"2!9 M5TJ[>ZK%V4=%V48S_=EM^^?6ZF"3&RO2752J51T2-OPJV'*_ZMWXH MR,VN;01I!R?WE@U2.X8\X8C[Z/A" AAFE1B*H0M[ZJ!IW9;-PMN5;3LE:['& M#A-,O'9$ $@L(&FWR*57XCV-?L-EG4&U1)!,5+L]<&HN\2@7:0M08^H]L)H# M@9!)4AH-*%.LM[>G7R1W&L.Y[RW^TY\KW3[N>\9Y0,;7@L."PNC2:B-M7",I MXRC=J,I@I'..4%_:9F\^?_M7T""6#@^OD1;7J_='Q]%ON)^F-^.NS*M7LV6Y M"5"XN2G2W8]B\]+BF^+DFT\-?#(8"3#DT880S7ST8BA E1=M@#0Y:5]>VHY? M_A 8B);ZNG3XIEP6_W'E\.'ZEO<<(\0%QK8FS^;!6O;;""&:*Z@L(A:1SC %*H-6DSZO'1[+\02- MCS\5U_?3XNJFX6O1>Y+=5M\K=W_O@($YI7HP&FFL.$PI-N)T1+&J0F0]$G%2 M&((EJ7_#>+U_QSG#6!M,L>7$P+@J9JR2B1IU(??6VE'SWH%]#K0O+43'$.@A M\]Q1;9V!EBJRN>7GL9#VPB+QS]9MO3B:T\!\B7$T3&COI>14&T(HPQ:DH;66 M$$9O_K+HDJOFNG$TIZ':69K!,D[DZZX6QR_#[B@=L(38. P1$T!:P+1"M)*+ M875A5\3RU?L\CV\FI-UMXE3=5(L-# ]3\E'JU*@=O 1>8@42>)9KA*A"E=P$ MR)RCMP&>K#1.I>8A?KDWJJ%Q6F!/HOF6#"K,K=O<28F_B\O!RZ)24RY/!O3+N,"*O"+4:"QQNIO+E?.V\@L)1*332:W_"ZSG MTB<7UQ>6A4%(1>,2PL'(?Z8)E%)5LC&?M3P;8,1).XQI ME!'+5W>#'&,DYL M=!NL@(I:EB*C*_M+H6,Y+_L,D'=-.>"=@/TR;Z]@(KD F!@!H(3.886V,@*& MLI[;&3*AVB%"[=LKI\'^LFZO*.B@PQ1H)!P3DD03CBO9F!!9N>>'1ZD&=%SK M]LIIJ';%&#V:CF;CXOVGHJB[O[2O2H >,<:5Y(H0;M(KL8Y4$DJ-M MP* S!A*FC20"8R 4WLH9+7&.-S1 %[I]*Y0!;I\[D[E/C C)$]Y)^-XP3QM MQ@*SG;X-S:'1R9=QNC@1:7.?\4Q0NZ=/HJ;8JF'/Z M!\B(<[K23WD)Y#1\GS/I)6*; \/%!'2U\=@*B,LSSR-^!$',J*=DZQIQ82[W MD8P&"=4@OK4'ZP =^E:P?3F!O&Y6S&^_'7&['@H%S9((WCHGD6(&2XJJ>%0N M&BW4V@-W2X*@#];A8T,Y%%E-&C$,6,EWC@IW MLN L]+KBP;^-YI/$]'?1%XX,,(YQLA8PC3$VG&RC1T6R,$+.[4X7ZD'V'$6DEWQXVVY MF-0X1G]<+/#H8EJI9+2?EGB!#<251R2HXCDAK&)XG&C*8&1 V#49CAJ*[PL& M(@4GVI,4&4(Q5\K9"A*1?KHL(W&>(O>PX2P$N]^N>WU2:MAMZ2"1@_LGHMD/8;TD)F5&ZX%4Q932(@DTF.Q2R6%T#D7&P:]'7@^&S(A M[/:.5',Y5[5AD>%"Q.E64H\TX' K)<#PPH(5FB1*8Z#V>OGE3;D\>)"R#:L_ M(Z'D*6T'+N*P<@Q#93 0 (/JRE=0JARPLT'&//0)!&[QK[;F*R7G!!8.8) M7&0X'?^(O@1FKHIUDU'/.4[ZP ,P\EG=OSY.XWGEZ4]FL1?+Q'*\^7OB-W[$ M[_5O'X$5QVI4[FBJ/I?WLYW)_0[7""C.,H1H3+5RF 0A_/67Y6.YNP;#?H, MZGR6-8MH]S/X.J*MUH2\+AJ@L90)F8*Y#;3"Q 5SM4NJD&,YN14&?1C1Y/QZ M%I2=3I>/+.%1#T M_6@R_[?1='5O^]C4>'[+ 7EGTST"&6$G# *A776S7 EO M<^(0![VMW= DV!GR?>Q^;J\'U-S_W)8/!"O"K8F0*L&L<8B*:H-849UU[6?0 M.Z!-&K3S\1Q$QH87]C@"==@J! E"G&K&J,&BRIH9_5&0E:(8_"B4[54G#ZP? M5![RU:'(2TQ#CK7F$ %K)02.0!RGJU4.> 72W?@ZXZ%MJW-J&G+#'&3, JJB M6PB P>1!)F>RSN4&= S3CIJ/I"$_#=JAQHL2I&PT-9AKBQCQ1%(KMFB8K ?R M!D20;!WNCQ<]#< AQXM"P32VFD)#K '<2>WH%@SJ+RS=X3DJ/!0O>AIZ+R%> MU"K@,3=$:\L1C]Z'M6PC$93.7^RA;9YIR(3QI<2+8DN-$>T9XRD2?PL/MR(G^'#0P1MY9B8#PJ$'KB,M(AH0"I!2_$CLO=?;.59?FK=R MGB(/!ZZ?AN#+"5R/2[YH])QRTEM&K/5(X8U"F_)(SD6R*X8\ M;%4_3H!:+%[-QM/[Z^+ZU>SQ]OR>()^TJ[\"K,XSL2U],4!.-=!6$$ $]Q0R M:U2%+W?\0EZ4;(1A3U/"#T(CW3-^]^',210^W$0@RA+K*4W7'#G7V*NHF@T" M5F2]O3/H+:(F.=DHQ'V=")Y]Y-?BL7ROKZ-+;Y0Q%"!AC")40E;-K)I !&LE M7^@AA&%GMGK];<]3'?K;OE5J_7/*MCL1I#26>*41 T82"(1BLM*$9/["H!P.A4Y*PWB2ME[R+JQ3 MB@JA'59)212_LE+@9I9^R"WL:OETQJ?E'7R7T&+(XTT!K&)), M$%---E0YG?,NQZ"7#H.U;\TIJV=29KXGZX! %#JHK?=1.NZL0)6LG+J<*\@# M-'"-:/VD]V1/P[?OVYTU+5V=ZD$;P'U.K6-#;S@38YP#T04Q7AJURA5%*QFM MSTK%-4#[V#81:K_A?!KL@S"@KT^*O3K40(CH,4U8'+'(0JHP\,94TFN7M?DR MZ-0Q+]- GJNW@83"5&*\FFWAO+KQD]EH-IZ,IF^+^4TY_YS>@FL@9N;T;P4G M&466(4*<)%9;X1BO,'4X*T7.2S/ 9Q#MM'B;UM7326#.8CR?W*5J5S?Z?A$Q M6_07DG,UOQW-)O]<26&B\2JGD^LU#6?7;Q])^ CF+?2'KO0WVGX@W*:GDYQ4 MU'HNH;<0K)3H@?#>U5H$MH/?F]'R?A[I>G57S-?F_P 8SPL'!Q%WSD (A95Q M<>?Y9O,^2A8'36\7N^_FDW(^67Y;'=.UM(O7+36>OBV5JXLN3,4FSW0$Q,V6 M41NO9BL#E]HYPV+LR=M1?:7Z[VC'UXXE[SBEC:"D=,1;PCP6("6; IP3R8WT M&G"G:V6[V#6:S\Z?_JB3^R+B#A4/@&(?_]=P8X"3WDDN\$8@*%U6%MJA#N(6 MM;XCT7HFXO4\<@9UQ$2T,W74=.N=[N M1[9(EF9463:%:4MT6/=G[U;.TR)!T.@=:Z\5(@@+I"V2J.IT_)_>(EY;)L+9 MNBL;P;%5Y3\B]Z'=EL,5 G!))(&-9I!1QS5QL!((8)^3HS KYNHE68C&X&V) M+Y6P'^:CV?H&Y[OBKISOQ[B<1VZNQ%QMCYB4BG[^S937^YA1HV9 %D57S'&,,:+)%"($-B)2 M)NR%/*S2 EF:![=5_GP8?7UU'1&:W$S6)U1O[M,SZP>9LZ=.8"GKA"8ZFD>G ME)=Q]JP\>8H$R'G)>D!A$ZUQIAE8V_97XT>.^:BQ2'"$&JVYL4 2XBDB'.(M MQ;W(V>7(.B%N>0W3EI-Z.J0M\4#%[ERG+OGIZ'8/$;XK$U;WH;S&6$"?@BZT M8M7RG'I%=.$<0(C'@X;55*H[X10P+6V\O5 M+XL:36#;JH_A)].BAEOQ4"RD5%4&*R.ACLLMR:WSLNJ\B?W/(,: 7NEHS9,X M&\E6::"NKZ-*%IO_)#GA03[L*!\88M@A@2T2*4(JY7.I-FC7_4/YU^!SE6>F '0":26$)]UYYKHS?&CWC758LUF5OAS:# M:!?D6*VFK^9OY^67R6Q\>(]C=Y6 (/+1$@H# %K=J&"J6E$QPE'6G9++WAAM M$-8NN/*V7"Q'T_\[N3NZ&[:K0DKJQ;2@EFK/D9($>%)-GLQPEI,)&U[VEFEC MH+;$DF3AU+P8'>#%XR*!,]'YH!8UMA.U$[ MT[>?RMGA1=,^RQK<-G[FYE0MKQ_X2>+V+W_ M4XSF/OYF7[S&GM)!Q(:EEUA)IP'A@$OB-J((;K,V.N$/N-.9!V\G3%GOL]3G MRJ/RP4F-J+=6^LAXFI)\HVKC3A#"L]CR ^V&-@5P2WSY,!]=3V:W[[]]_EA. M]W#DNS)!,6AMVJ@15$F3DI4Y5G5;89FU(OF!MD)S0&UU/?*NN)VD..C9\LWH M\^&5R/=% T'6. Z$HPYJQYP3H(HUB%;19.43S]H+?5G,: #;5@EBBI1B5(VQ$4W,88:!12 WD.K;;7NEL[ZK!Q]69NB+Y$B>>"VM5R] MG\^_485T@HI[).Z-&/L .:@V:KA'"?BWG*6O'; MO/QK^:F.G=A9(W!&J)8" ":$]112:*O=W&@&<=9=E&&T.U78=T_5]&Q^'J@0<)8(@KL2@%\BFX"5?>=O:JJRK[NBR]T\;A+7E8/0(ZRB] M75%$=VBTZ?!!KNRN$@1'6 @.+(J>%''4>%]M$&MC6):C.J ,0ZUQI1%86P\* MFYOH--^6\\,3SW".@X](1A(K27J,+$L,S+D3_0#FH^M.W..N7GS^GB M1#G^\_VGB,WBZGZY2/D%HMT[//<6%&8A)3E)M=-EA MJ W ^<")UM+K^-%D_F^CZ7WQ>S%*+VRM$@MM?WDU>Y>DF$I:]NQAR?!ZB3@.E0MZI8;2IC1')JXX- ,F4T:8 (%+5<\I:E58M%L7H: M[?5D]'$R73V*MM'7]2,5Q0)ORMG\.XT=>]VNL6\$&AUM18T%2"G&+$UI;BH< M/7(7]@I8,Y0JAZ&,>G-/@X36WQZ9&S\O_OV^F(WW)1 ZH780$AD$*59":8,A ME(ZB2FY%S(6D@NB1+_L8VYA..N?BKGX?S45=HW9(3^TR!)GQSB.HF4%RBVGT M'GK+B-8R%YM@PCZ6-89VGRQ;;,?C[\6>V,M3J@>)HW@&.10]2 J]AEYMGET& M$ -_8=G/&^5"#9YEPMW#U+K]ZW^?%//X_4_?7A=?BFG]V?5 X$;BYR5FF@) MK)8< HTKZ1W/\O(&=#8ZR FV.;7T:OV>BW'6;+NWG:"<\IQ9:#SQ4DNEH*(5 M%DI?[$*D(8+4,8D-0=\Y#5_-[NZ7BQ4HL/[<^[Q6$%H8QJCS(,)HN.)ZZ\A M*+)" H9,L68YL(]IV7CWR2MT%J\VM0+"BG@K%0*"&@$0!I9LY$2(BYQTJ$.> M73OGU7EX]\DK?!:O-K6"YA$SRIG$"'/'#;"FP@XQ+'*B8P<4P=0_K\[#NW-> M97BSVS.1EO>4'\Y>D#8X BD9UUA*Y*7AVS$*9+W]^1?(W?Y7'#UHK\^%R3\F MRT]_S,J/BV+^)0&X'M91S'(VCM*/UNEQ'TNY FC5S(EKEYQ/!1DMB-80<&Q$ MQ-,B;F&%J&27]NA[3VRLL0KJ4(E=#0OU9329)EE\.7\_FA:;(^R(M/JJ(K^;6$6==U_H/$NTG!S_L(0 5SEP& IZ(7FBA\7/ MMK33O_4\RV &JY@BE ""O?3I!K>QII)2*)B3-'1 MPJ&Q<'&U-&962QG7XIH MO&.7;?%QN2LLY9!!/%X[<,D(,T![1QQUAJBTE%C++;B&.=?A!G1C85@T;%XO M+W!E];Y8+J?KS9MNUE>//A@P18S&8>V0HB2Z/1I:6Z%+@,QA??V[%W+-^EEQ M.UH6UQ]^$/(/0J-=C9>')W[7F!]@^M.B0;F(KM68"\>UX%0)H2J)$((Y!YU9 MMT NF9R92NC,%UUU[K35T=XZ 0,+*8@":4RJ8Y)AX 2JTTH\YR8L'=-MD6$QK0A-=L>Q1 M#T\S;H MU$Y@DE)LB3>,6@C2@P4(;U1EO>.U%H4]XE''#)S64,#16Z8FC@+&@33$$0)5 MA0@S(N=)OJ'F>VN9.F6'^AB6,5'7UZMWDE-RQ.T]\?6MZ!_,S@BMB :>0"X0 MDH@B"==.GU6:B7I9G&OZ1 ]?S]74,6>J^2^%N$CG:8<188P0II)B8BN< *%9 MN6N'839J,Z$<$M)=K5C?CS\5U_?3XNJF2H&GQO]^/UD_M[[0WQ[]=.RN_JE- M!2Q$LN=.8BJL8EZ"S56UB(A2_7G$+G;,E M"MV[!@P1PS/GAI! M1 ^%R?2$BL1,(.>LD)5\,._9NZS TPX6@YW9GV:P[Y-;Z:_SHCAJC8[6#1I( MJ26&*,73QF4T(:)RC@W#*.=&WU!=L,9H4(-6.6"?2;#%?/F(7/&GI\2*OPKO M4L:W/2;JNW\/RFBO/':0I^?@HOR4\:K/G,'>(HTOP2#E(-TZ._9>Z'Q2(G H M*%&:,PFU-YR(R/%-ORT3*B?Z8J@FY$S%/57[60#V..^\KG&Y\E"UH)E-YH]9 MKA#27,MD73>2/G1(8\400G$VAFJ3 M*"1*0)7,N9DUP"55,\K<M0L J M["'7RBJGY!8N1%S6VP8#-SZMT*A1N(=UC.8GL\FR>#WY4CP[8'BPX_Y^F8X9 M'J'0=_KA?D[:5,HA'CT8K*64'AO'W.:N,/54UWO]L&[TT4HOTZ27R;9CHU7' M%AN]E#>C1QHIOMX5LT6Q[^0BO]% 2!PZ&F*O&:.">8'\.O3$,< MZ\W['<+) M6VUFE#VIHZLI[=4L6J%BNS_Z.K'@^![A@5K!1D2UM10#%U<>5"."324GPO1" M,GQU28BR+?![)MG13<*#]8*@W!LKG=?&9KUZ/!RB-:KU>DPZ M"]_NKNTNEEVNT<)L[M"\!)(1;4UW"DNI#.BN@#)@&4L M)QID@#E7VN%,(] >)T[#[OFA?<5F&HZ "N48$<0HI%@TXYY6QAMZDG7.-2!R M]> O]:*?SK(%[-\'>+SNWPRV=T4:NY$35ST@L MH1I4(QMBK2\DVUK7)'MZ^:1S10V3X$F0#W^5C5%ZTU[$QB'B=)SOA!8,"28) MJ;#1&F2]%_D?).Y0-0.F;?S\P328Y[48 /#$6:>4,H0CH%#4S!8?8&I=,QA^ M(K:71]TSE#-<\OKROCD_HFHP8 *) 4KZ]/.:>KIMA,E?= M1*TV3M_O6@U&,*U9U 40R&@ J5:PPHE;D[-PJY_ [3\XW)2"VM@SNUD%&#P& M9EDN1[NBI,YL*4"-%58^>4;&8$>$H+J2D6#H,T@XH QM/9&P&Z4,*W!F9Y$? M\_YYRFM"I(E6@VAFI"* (ZFEIYXYHVL-K9HFY.'KNS54^U+YP>I!>R,08C9^ M76KC-?*25!)%KN88BZ'<%*^KL]TWQ9N$K_OKWP?FROH7OX\U$I"3FE)L/.00 M6TRX J9" 3G4VXW([JY\-\22O?>X&U;!,&XA,> !)TI$V"EF6DHJ:-5G(OF% M17VWHTK'!3U/\8-Z\;M2ON: M& C'_K_9O3Y^.WK$UL*%O-T&T<2+0VFV"*!=86'P#+G&'2HOE&KM*E/S0;4 MT14]WX[BPGGUVL+XTZR&E"E*_ZY8%NIV7JP3ZA^EU/Y*P4(+-(K+*>:Y MU=9K+T EI<%9)FM @0M=DZHQP >PQ'Q=(\5*G>I!( XT851(SK!!+B6=V@XH MX'J;'2]^F^-<%=0CWZ)BWZ(8_^VV_/+K=3%)Q)/I+ZNSP4=\B[\*MAS?IQ'Q MMHC 7[O9M8W3^@YR[2T;G$-<0!3A0% B$>=[GE8JVFKEHY7.//=[04;K#,V6 MS8([ /UV[Q*^84X9';#?2*B!R@IA/7V"FP+/+)][IL+_T MG&=6 J\X/O]7-J;3LF% NZ7'WN"60\6#AP88327UT<$R$E"L?241-$\? MFW^I%&E"I0?9<1::+S>7(1!&&$ >^T=4DYO9>7N4IY7;E3K)R4J/ W?85P;H%I:CBG$C@O+#$*( MN:K/BO=W"#9LRY*#X7#N"&"KT[L<<2P0HC&EUEM8]=O&.?HR[,&9NMIS1^ T MS+J:+RHVOZYQ-OZL;% 4:>2Y4,I%YGL =JZ9$R[G*M# PSD:=J[R,6S:X[4 MH$9@C$L"&<5*>N2)$)B"2@+D6<[.^X L0P,:W/=NR&D =DV!S:-KU_9^/IG= MKH_;ZVP1[J@6E#34I8S/Q$""%(V+.%1):I2YL)RTS5.E 5"[IH\OY\7D=F;N MHV)FXV\?YJ/98KI2WF_1#7Y]./JA?B/!4F6\4EIKSJR$#,05_G80*9,S+PW0 M-VV>6HU#/*PSF=6T_:,=P%")H&, &D"E$D0Z#3=)4BEUD)Z5-*.U YBH#1T_ M]N=IAS!5K0 YMDHQJ1'A<3PYSA]DA7'1?IE>2,,\.'X0P\N_<1K?:K<6 M-$4BI7B5FCD/(A RKOO6N##BZSW?]$+C\;HF95M*Z9JLY2%)GC^+YA[EES^% MQ4U\)F .K#4X+GDE8AK[N&;A%9+I'9<+CN_KEMX]:*L#CVV])_YA]+58]!T3 ML^W*20[8@5J!"*2UBH;%3FG9-R=F@Q5K^1@)GC*#1;5M?;^QOCF[Z^*^Z2,S2[K3' M]U4)<3& *<; (VLA)HISA38* =;K6GL(W4AYVB"O43M @YCWW%L5%T02"\LY MKV2/_]_;_DD7%URS^?#4AV\<[V$/?G5]O7H$?31]5+;G-,5-V@7D*47 6RH MA$9C2XU%Z?4I1#W0J-:CU&WO=[TKOA2S^V+A([U=A'D>M?&@H-GUZW)VNUI+ MGIJ#]IR& _$440"L]AA[*3''SE>(62 O;#S?\\$NYZK&I@QAJN -&46$LUII:@2F*)Y85$2G=-CV.OG!0.%),HA#?+6: V1(0!54A !:CF@+R=NJN/IK1', MVV1.RNEU=?-=%P_>)]M;/B#),'58>2>H1LI C!]D,NI";JOF*K1L'LKC]-CS M&(WZ//IG.=L[LSPK$X10@$I!O="*,\@00*[JE^#R0IYV:$@W93,H]KB"^A [ MZ&82[8M2)9OMUC1MNYS89B-"$*X1I MQ(9&CT-Z#K8("9[C2P_Z(ERG4V='VJG'WQZ2Q3(L#3 "*.NL$2FEJ4E^*,$0 M$D),SL)_@(:N?6T?32![&N"]^6.QT^D7H]L"GN*0/:H6E\/ >6^9M)! 0S@% M8HL9D*RWA[M>.+5:P'[8A_^;*H\+?BSOEQO 3;E8;N>,5>+L5S^*"SX@;./J<;],]K?\2<%M?#I!(+14FVE,NA-%:4[ .\(:&C5."&8\@5 U)%!\0"*@BLNFX,[6V'I(, O"X57S:E@9;(L^[/WKVVIT4" MM0 ;J33'6*1L,]Q+L>FTI2SKWOM0:9.EN[(1'#N+,*BRA^G[171)%Y6W=>P% MWX/U C8*>@\DD"2.$HT0I;R2E3B8L^L_]#NJ/9B:-G32&?_673RZ]?]=N6"= MQU8[HJDG5-IT]H:V8\G@G#O00[5)#2MY=T#Y6?!V3)5M$.QVI,UNTTK:E_/# M8^W[H59GZ[:E+P8M+*9$\P'Z@5AD4T)7< JVQ63'N+* MRW%<@$Y/_[\4\X_ECTS")E75W7)IFO"*7?Y]-/^S2%@=Y^3^2H'\__:NK;>- M'%F_[Z_A_?*R *_ '&22@V2R@WTB%*MCZT!6Y^B2R_[Z):5NV98MJ6_J;LO! M##+QI,F0'S\6BU6L*@J-37$30#H%B6&NS#<$XS^M7G+6+DWVY@G9V3KU=@9G MBXA/2FVEIO>S12HK/TG99\Y3\DS+H#! C$+(/:328P^=H^5\+<1M(C/9;U[6 M/:T[7:S>[LKY(B]AVOD;S]/R:)L E*":80Z@\Y1J3ZB%^PVH5)N03?Z;D'4O MSATMT[B?R R*,7$@ FP'EZH'@[^T0+I MT59Q435T3#MO+), 8Q;UV5T.(ZN<5972//8VUVK9\(XW"U 2 M#!23@D AA0<,4ES.5DL]V%OL'K9U)R1XEAJO,ZS[W+[#IZWM>A<;@J412G(9 M_\NCGA75K@)K@RVI9,JZ\%P_3G[\&17.Y6PR3U7GDZ-EE2V_9Z><9><;!R I M8\D3CW147JE"E)%RYIQ?7W[+#CAP;!-W!7)?=\K]P%.6[574,;8.D]K<.MXZ M((@PA!((YPFVW OL?#%O*PB_LOB*BY*K,Y1[9U<<;!4:Q<\"2+7C/"5*0B6$ MHH8Z6,Z$D58I\^H[M?+U9#X.]:(U>>ICVZ^>]@"AQ#>Y1@/BJ30"= MD..H%:!3W'O8Z.^RR2I;Q0-LLKB)NM'^>>@?]]\B(!^^JFG^;6LH6=T(@H:^ M7.Q&6T$"//TP2"*YE=I @XT7UD0AO;/NQ#-8(\V'V_1[<_9VQ!]GMW<1],^K M71V5$Q,\V2YP39RFD!I-)$%&(^=X.5])2*]I'Y_Z$"ZSIYLN=WXY4/M2Y9Z. M^=UL\F4VCP*T,G7V+0* E @#(0$ :$P=I:B032*J(Z;-DY$17@@N0IFF8/8F MZ+>_IA=XKU62,X4<,Y8C1KDWG$G'36$WITRR 8U!3YGP=Y:D1S954?Q-;K.D M:^2;Q3H5R2D"[2OOT/-=!6Z4EHK%.XB#1'%M/"Y1821J+M=E*&I*B9-;MW.4 MASD TMZNS*ST<2!$1."DPY0[IQ#&DI6>+T:Q:1/7.WZQWPUW&N#8%SO^-5G. MTA6D"CF>?1L0BJJ-QHX)QIP5/OY ]G-"& SUD'G4W&@+8U_4J$*)ASD8(ZD5 M"J3*;0! R>/EM9R#U;Y- ,\(TXEU1(6F\ US=AP<@1^S%,U9_N%?V?+^5"ZG MNET%H:6,BG&*-B*..:!0$7@4$?&T6FJ8KAX$OQI"71CEWNXA?T[6FV3G>Q3! M^?0"]5KO)T9)) #6"F- G$WIG8M['\51<:PD)B\UH]4JRX[ _;^37]MPP!V% MIBE6T$<->#+_=S8YE0BU>:?!82(DYYK'0Q$YH(57KD1*XVLKP=24)L\.E)[P M[D\)J3 AN\G2%/[ZD;>EXD-/ 2;T!0 62@"UM5$&TQ*/E,'@JN\]%^5?8Y!' M2;KX%Y]ZR%^[K\ $])X1SI2)5T8@,(*RQ(0@5LD9\6HO5;T0KP',8Z2>SS>M MS]Y'786(!4040*@4C?A;R:3:(Z)<&XU[_%>X/HC7 .51\F[VO2N)E[H**><[ MI)0I:8 2F@CGBSK2E% !VSPV&/]-KQ?>U4=Y;+Q37^/*=$B^)_T%IQRP4DL& ME6:&'0/;0#TV&G; O$ 80%X8;1DP'F.$'2@/ $)H M*TMI[0#.JR-;371'P:_/BVGA3O(+O\_6 L29-77[* M,*13 #^@3*2B3+N'_0E,%C75 :/,7U)M5E7B2$XW#%P9!8!2G%FL#=,0L"*D MFG)=T[@I[9&-/>MN2GS;=O\VU$R&1N)JL[/\]_O%;?/%(,(K[U M!#@DK9=">20U<_%GQFDEC_-+,QJ@[A[D6FA!F85($*T$1X+NID*\9J!-UK+Q M[\#*ZWBVFEX]&(?1JDKC1V55JFP0',%(. ]2 -TSD/B28D3X+1-0I#Q>[CK MDJ13+/MBRD&(TH)TRK;!-HT6M0A GFG#,1&F&Q MIT[C$B>$;!O58/S.[:: M;K="]?PQ<(3M#_'DQ[7PLPQIV%,@$$J,H9(,2LZ($*3TL" 3?VGC+!V1VM U M<_I!>Q3^K/+Q=@T95;NW0 W%' J$L.-0(R<0<"4NU-LV(8TC4B0N)[\NC7@/ MFD11W#7E +Y=S%)KDR^VN.C)?+*X*6LQ#V>)>#[";8K_';6*/ZQ@IZC33:!( M>(&4!]0C 5U<*<,(M62;/RCJF\,I+_MI%&$H\:Z]38$:5^K#E_GL=DN *C"< M:A\DT-I)1[&7"'.J@ 6@G#]'LM?<%KW5A>^8&L_J4W0/?%\GE;K9NN=7$:%L M]CU)M/?9^KP/\U2S@(2"PCE(=;SE*Z2--::^+ M6^5Q\_=L?5D M^_3*OHNNP"CXV)1^P0H?@4/<4:FU 41;D>;*F"/(4]]KJ:BWP+::@(]"T1XX M#>00>K9D'H!X'!D(G(L4P*JH$VN=!PP-J&>_Q*ZMX3C.9L^RRI?S!KT%HBRF M3F'EN4O1+5X4Q4^L!P2PP0IHCT!D5*9-!9'1[3(,(DCL;#6YO5UFNSM$2HR\ M_>(M7MP1AMP(DO0*!S0$2G.-I#)*.,6-JY1,YS)H'%FD+=M.S/Y4LQ3Y2P&+ MD_/& ^4DHW0_6XQDF_#JURXB*A,AOQC>#376U7+]B%7QIT-&Q?\5]CED'TI0 M3>;JY^RE%PPGOP^"0"P8(HHA8Q6C2'):S@DP<66O7+I9WKQ[8"]*EL-J99.Y MS9,9ZAA9CGT?. (R.><@!TQQCD4JWK";DS/<#I;2NENR=+2N>?>(UF-)^51N M:Q-:_DI$X>4/B2?\$4^*_QT^?WJ!% ]_& SBFJ=WS4;&&SM-3R=5.5YM?!O' MY=@8T'[-\I;P]67S<'\Z]6=V_R4[E0KAX:,@A.%:QH/5&R,TT Y)6,["6]?F MS!B1][I;$K2&L?%#!S6??UC?9G5TH8]_'.)U2R@$D6%2"H$] E05>Z]]2]DV#L]Y%>DLOA* 0&D4-*V?L MO+ZR1%"=:ID7PKBWY[.[8:;ZP2^97]S/F_EFNBU^L4KO*:9_37Z>-P;4Z2UP M:01F IMD4E9$1\#W&]=!=V5)\+JCRUCX?2RVLRKF]TKM@S:<*A;5,2%1O-8EC4R4\Q=875G$W66H4<.: MUA3X0:3$L%&S0TB#N-@I7HMP:34$$#LN=WX/#XD"8D!+^IF#J(I J-I%U-0= M!M18C:D%D%'F#=FCP-V5O/"_+$'JZ1%-L1]$+'R:Q=]\C9?$Q?I_-M/;70*E M-^AVXXZ+>)?%FBO(+02.H2(%+4' BTI6P8K6C(_9U\UB.B^]M=^6^71SLUYF MZ\UR\=(5]7RCX*65V,?3!U J)"$ >%6.GC+[EE^[5E[8_$)H-[9Z'0PB3U:8 MFSC#V7HU6<1[2JHV-'NYPG.M]L$S+](DF&,$,X4L9\63?H*C&M/&)S)"TT;O M[.D*^-&<#V_P9NFL<9;%I?%.<<^Y9JJX/D" C!^P-&@QTG)QJD_\L$50).HK M,!)>QW_C78E:7&HK@#GYEI]K55[^ES7%EE#WL/$_K:.^>I?/XVJMW/]O1E!: M93>*"G1^^F'P44YSA['G+(IL904K#V?D,94#EG[<8OPQ^[99WMREI!'+Y*"Y M5YOU7;Y,S\EW.2-/54^JV$,PE@(%"?=2NE2UPTN 2@RG=R4 (?5 MN2\";E].BH/13Z,P^YBM9W&5[&:Y"]::Y=-/=Q'14VZP.MT$XJ7B&&KH#-+2 M(<&,*)%(SUJO2V^\#,VZ1'A<7/O79'XR4W:-7E)1;8V(AP8Q!XAV@FF_PP$# MCNV5>.\'85H3@ =12(8U8#=51Q#5P$KL/.+4.ZV<4+30])AQ9,#XD)<13A6- MY_EJLZSDEJK<1T".:2TQC>HRL3B>H0Z6ME9& +YNE:0R"5[:P1> MX_]N[F_ MGRQ_??CZR(!0Q/8FT9//9S>S ;?S\Z%4V-K'&P4+A8SW0,X5T M5B-C*MV=+[3-3^%?:8]7ZB# ]!14.6D4-)(A24%1T"@A(.%@;U2^Q4,NI3'9 MZI27V>U=\.)PYU\"]-%L>SU9S6Z2N64VWZRSZ?ML_<3XDEC+Y M_;?-NGBS<#!4-UFF]!VK.-+XV7V^V([W6!A7-QT'I7D\F# #1&(H+,+&%"A M3"EL4R-^K.+AXH1Y.:=8/RM4[:Y9.^?QN^QV,G=16$3MZ>58L!>^"C;EN])4 M1\P$H1I28F@Y=(#(-9X]?2]ZWA7Z%R+.;CQ'@\(./PD2VSAK#(DRV#,GM="V M'#2#P]65OB!E6JU=W@F.':2ZK,_T=R>>_W?7>7 $( VU4BFJWSF$!1 E$DB3 M-JD(6UE#KT\(#;9H%Y)=[1/]"ZLP,\)8@;50SD<%8C\-H]B51+4.L>YGBP/4 M@[XO$_U>NWR7KT[Y>YY\%SC"FK@(BH&6&@8@H+*<"_2\UXQVKT6$->=4%VO0 M%Y_^SE+R^6RJOF?+R6WV?I.B .,M?^NF^K!9K];;ETVW6\A.\*U6/\$[2#G MQBJ@K!"*2$U*+ 23;4*U:[M]GF98O&Y&7G*5!F5L@=NSB:CI_VU6Z_O3R4 ; M]ABVP^]27PL9X"EM)R MPJP#+*7OA9*I/1ZC9-(YQ]SSYE-ZE0QBQ;[3((9--= M9. C# \GMWM+>NJI01?]!P&PA0@939'WV/*HV.Q/!>1:24[QVRPT\'*-QIN_ M30^T34+;(G+TB-U_]^HI*CDW>=+/UW=Y5'>^9SM=_=2;G1JM [#6.8.\BH>9 M,D3$I?;%XRDD%6Y<\;6K5X3];)".ZG\R6VZ>< M9T5+XSZ#@5IS#KTS!B$E(V#.ECAI/)R;]0+BI&OF'!YV/:W!:&3$U3WX\\A0 M[9%B" */.?4D"N]=(6YGN2;#R8QTY*T^?#T8^Z_=KU4>_%7K($C( '/( "(L MLI&0@)>ER!WFN!("K\R#WB4O\AY [TL;_KR*>I=;K6?WD_7)\**G'P9H/"(0 M>>&)(RP5CN)%G4SJTTROT-]T00JU K-E.7.>&&H))#; [3B8=32^H4[S #&TV"3% MGL>]Z+BCID@H@%,FLDK)K%X/J[JF0RVV-4*\OSP>Q7[[=),M)E'/.R.T7OP^ M*.R(=4IQKA!D'!L)R]01C-I6)=Q&F 6F(QG5!92]T:08XN?%ZEMV$U71;'I6 M#AUM$Z"76C($,),,6$^DT:RE3+//PX* M8L:!$P92;SG$PF%9S(H#B*Y5O#1?W<,"PVTA[5VVO*M0W>GYQX&D\E>4<>ZX M5<)2H DN9Z40:!-;,L)Z]EU+DZ8X5C"<%7^0?ODR667__,=_ 5!+ P04 M" !@0%/8>I'>71B 0#0'Q4 $P &ER8G0M,C Q.38R.3$P<2YH=&WLO6M7 MXTB6+OSYG%^APTS/R5K+9,;]0E;E62$IU,U,%F0!U3/]?NDE; 'J,C8MV9G0 MO_X-R9)EL&PPR$:VH]?J+.P(2Q$[]K-OL6/'S__O_K;O?(^2-!X.?CF '\&! M$PVZPUX\N/[EX/>+X% <_+\O__OG_W-X^#_NV5?''W;'M]%@Y'A)%(ZBGO,C M'MTX_]V+TC^'DY^='".AE MA'H<=NZ/NC3J"L(I1D(2RGH"7DH6B5X4$HDYZY8/J][>+=X^3LTXB]<[TV[> M\.XAB:]O1@X"4)9#FK3?C,Q\S9P'Z2\'-Z/1W=&G3S]^_/CX W\<)M>?H)3R MTWW6YV#2Z>@J/;SL3;M>A>EEWK$7IY_RID_F%>(0P$,,RY]T,TK6_< TU'2/ MD\O1H['$R?!R./K8'=YFO25@2)9]!Z/Z)P]&-0_N)?6=>TE-Y[1[=1@/>G$2 MSO\H'=U^JMIK?AS%]6^*XKHWQ=W#=%31]/XRZ7],H^['Z^'W3T5C]C/XA$R# M[]UA_6ORIKHW#6O&E4]F6#NPT5VR9&1%:_G_NI4T?+A@A*:ECE/&26+0]E#_ MQK(U^R%__,/D;@%/FH:Z]R3=ZV@14^9MB\@1]OM+R&%:R__7/&"P@"L&=<3O M#L>#4?)P:-"]> V>=*HAS'!TTX_#R_H7%XUU8GR:(5J!<) M^<"7SJIF-KWH<@'@LY8ZDH=Q-ZU_2]Y4\X[HOGNSF.)E:QW-HN[A]W_6#V_2 M5O.C8??N:@%&\J9%J4!0O7\V9#KG& M?2+5TR%!D#]Z?1#4#SC5EV5RO59(%:YXWU6ODC(EJA%JAEO/6 MFA^.XL'A79C4_+!L62@YGI$:]1)C8NY\7V8+?:^UHFZBGIE%'( M2QD!+N&$!6Q0.^#"0%IB?2QFG-D>=6*U&W47R%734O/&<7IX'89W&=B2AV_# M>+! Z];W6T+O='Q[,^POT,A/.M5)RO$B W9<9ZMDAO\"O9PW+1GH\Z-<,,3X M?A$_0". !OUX$&4.VIPY_XPUOWR1'F&G;G46F08YD)>!O.Y'N:BI40B5'*K3 M"9GP7BK9ZZ7ZE+67:H:GO6I ,.VRV&J=Z5'S /.*%TRAJH]7^PG5FAD*+1 MUT0%?]3H^=MAG2@MU7S66B>#%RCK4=VR9(9S)J;JUK-LJH?6XK$5C77H&'1' MX?TBX9>U/>-R+.: QYUJUN]JV%TT7M-2Q['=[MUP@7J8M-7\*+Q;(&GOZF8V MNJR1JKEB-BT+>"(=W]TM$.?3YCHE.[ZMETR]4?)I]' 7?3(]HB3NSHJF]'*1 MO3%IK/,<%HCH6E>^P,Q"2%;M-9BZ-\+TC\71H:QU1E8N8/*R94$ 9+EW476H M"81D\*F5RT7#8G(L?>GC/C5DZ79K)'K.4]TZ<1[U%H5KLI8%\K^WD"\FC0MT M37JY.-"3-=;\["Y1OEF@!C(AL$ -Y$T+HI%+C9=ZTZ47WRR2 MJZ9EL:VST,:I^W8)E, MPP+PQ#S[2,NTN]Q[RYWOE?Z/LOX(B%)F7>ML3JOHIZ@^%H 4&>=%JH M'6LP52&Q#E?I@OA[6L>Z&3_$2U#X-*B1D7:Q%ITTUFXV+#"2:O<$Z@RQM-[5 M'@Y>8 @,!X=/C('H;H& ,PUU0=?H*LILZ6@AI0KG>-KQD4199G4LUBYQW:Y+ MJ5WBVJV7TFI\-I)=[Q(,HM%S$S1='NFFY7II08!^&C9])G2TV/@U=%XX4I:M MPF-"+O+N)HWU GJ!^BA;ZI@\O%ZT4V1:ELB)X2B]62XDLAYUZ[W <.[66 M8$V,%Z)QR2;EM+W>M31@-5(A7>Q>EAWJ!KIHC9/:19X&G6Z,Q_J"V%39;1EW M#KL_GN%.TV.A^;_,[*\Q]Q>IRUH-V4VZZ>4"#W72MD1(/NM[+Q(]U\,%K\R; MED4\E^\R/NE5Y_.G]<)LRD:U1FV=>YVS;:UCG3%S=+W DB\::P.%9M S<=E, M*E>+7<8)/XV2<)!>#9/;V[8Z!"Q&E?W.>]_9B1/>/]R =0OZ]=IT;(.:[OG^VC+]M@6;"0N(*EI MJ5^*A4M00_I2O"^-]];'%K*G]Y[XME,#8-)8 ;X77\7=?.D6[.;,=:F+!(UN MC)"^7X#]LG69$[]\NWMQ7-N(LKO%.UYWM3M>9DF[@][5(L.[:E\ J*51HOH( MT7V_'D>Y(_$_7V?B5V8$PT46^*2MUKQ:%(O+6NJF<1-U%P5HLJ9:LBTB5TWG MZW&X@+I92YWA&UT_L]=:V-C7L]MK&7,L9IM%T!C50H-.H#$Z^/*__]?/-U'8 M,__]7S_?1J/0R7H?9IOZQMKSAL8@,>QX82S= Z<[^?3+P2BZ'WV:9*E]RG\X MBD?]Z$N9'O?SI\EG\^A/Q;-_OASV'IQT]- WA+TRSSF\"F_C_L/117P;IE=/WS(W+WHX,O/\?U1]OPH MF?P9]WK1(/_3M)],'+W)H.]'9YFC$/B96?L;^MN%?^ ,PMOLB5%\I,R@>]G M@WYX?>#$9F&"L#LZA"[3,"#"I20 &!KNY8&O5:"1)W'@\<,??QR^J..!,U$9 MOQP8'7-T.32+&PZNPGYJ)I'_Y^=/CP;]BCEXN=$P"N*T&_;_%H6)'O1\PSTS MTW&!^64@D/ #((F6OJ"Z&*6'F/"GTWFNX\&7PT-HE)YX^[!+EIF,^YOYV; 7 MF._2F7%3%+B"^@P)@04C@OE %2,U$\'#'WN^[XB MP/41ED@'$,%B' (IYE5\\TS'@R_9"-X^9#TP@'SPLNWLL'\\Z$7W_Q4]S P8 M$0P5\Z61"UAAB(B&!>$"Y"'!I@-^KN/!%P",.J 2,KY@V$%B'F2TJ],SDOUP<#X:=O_X%B:GR?DHTW]_#?OCJ'K0=*)$&= P%S$" M.1'"K)& 4[A[0D\G^EQ'P[4? 5S+)&M6=+5)0@1\&D ?$"6Y!L"@K)3%E& 7 M5++DF8XK3_+X))B99IJ-*UUY&?/II&H\NADF&:_.S(S# #.J74@1#EQ@F)"5 M Y:>EG ZL^O6_Y;E$2]9Z3*3 (H&#&NW"AQRA1BH%R63!"O#)@GNMX\(5N4&"^ M>'[*T\:!@@3Y 82(\22]VE\-(C[QE-.QM$C M5T9SU\-:?LUR2?#_C-C3S=?)< MJJ.;?!,Q.P9WB(KS;A_O,_M\TISM\AEJQ;=W_2SF\.GQ,R:OFWU'_C$=CI/\ M4[ZO?E30>$*7&1\M#YY,ND2YCY9]47X3][+OKN(H_XOQY[74]_ MG+_CT].7%.^XRSWNV;>:-4U&6>3@2QY0,GX^!N7/J[:9'T230,.7R8XA.T2R M>ENO[%Q^-7U?^45!F3I"37@1SW-;"ZDV28\8%43@AZAZ9-'R2B),$=GZ2<^N M?!.3SN1NNR>=HZ.Y21=RX;T@E#@$Y!"\F% B(U0E M;QLBU#9H&IYKFOO% MF]XX(5W\2CL_QK=7D;)QB@^)6=TG8TX_VKR7<^\^?ZN'W?CT61, M3B\V72:E%DK3;NE4#[Y,XY#+YOKSI]K734;W:6YX;9*V!AMVU=NVZNVQ05_/ M)C,QBYUDC;GY[04[O$Y1G$6C,!Y$/1TF ^/ I#O)$/63W"O58-=Y]]%O&,-J M@O?2!.N-.*R^M!;P6[?(JVMOB]\MT-FO]."[W?'MN)\E8)QF>;M9MR2ZR0CY M/3H>=(>WT4XN^8OGO8VL\'K/WG+#>W'#UAMYEG?:($E:813: .$FP\(-+WFU M"6>MQ%;$^]YWJW$B :#EA19X#!-. ,T*]U67UGK\6[7(KQ;G5HEO=I=O&\6\ MY9$-&WKO+_ZMF]<2-Z\=2L)R0RL"1JU0'FU,L6LA9JP!O=MHJ').K=/3&I"[[U*O%E;L1VVXON*PU>SCS6;+&/8 M(%0+ I6M,*>L\'A_X=$V\]$:&&T(339L;KX.[]:3V!*4K[ZT5MUO]LQI"P2[ MU=Y;)[)YZVM7M$)/69.E#29+*X2L4@O5M]T,U6$^O';O?K9 1+0^-M,)2 MMH!I26BD%>+3JLG=%HPSV1]I,JJ8XL_1\#H)[V[B;MC/&:*XDO3OOY^W??'- M/(X6SN/@2S&1H]_/]R)O8P;YRQ>X1+S^5:OM0/DS"UVBNYJ01?3L@F?W#OQ= M]?NYMCN+K@U-MT2\/[/PV<2.:B>V-XB7+T&\98"=/@CS/ -8G;Z](OY%"+Z@6V;MBNUO9[L55N1?9.6>%VP3?I=[\WPE^TX-;MVET&>)'; M91E@)]VRHAJ+Z@WOLH0,=>X)TO[R XVG8\Z6K0WB03R*OL;?H][QP#SY.K[L M1RI-HU'J/OP:_F.8>/TP?;SC=#+,]MKNHE&DKI,HY[0M04>I^%:8=:4M%T][ M(_N-:[[OX#6,<)&$O>@DO(WV8?F?3G9#F\R-WX3P5O1[XW0TO,VT1[X3__1W M>\ )+Z+ OLJ$;V%V]W;4NXBZ-X-A?WC]L <RC:YD"RT$ M:R9NVDQ1FSX$^F=VV8GO5 M93TU;S#?#J[U_9VAW):=0'G1VM9/<1L7N*:BI&]^_]W,+CM)8P34.!OO69S^ M\6B1@V$2Q=<#?=^],=(N,A]_A$EO,N&E3TK_',:#K\/4R,6_1+UK0\/<)\JV MGV[BN\?R(4QO@O[P1]'OR<-?PHHY^LZB[]%@')U$H^WBQ&7K4+'BLH58QI!O M',CSRS@C">O6L:&QO0BNM6RP;YDM.PCOK34@++2WT,IJ7_J*A;6%M86UU=;; M 6MKC%MHO[,QW@JM_=O6P-N"L^W@;!0;[WU,K%R[I&C.Z'L%AA;/4L.9,.]#Q/ M[D)FT*I2Z&L<7L;]>!1'5A3MFBB:6ULKCZP\>BJ/UIS29JTB*XJL562ET/LF MS3\KA52WFXRCWAJMH=V!]B):;06N=\N.]ZS2W"5D+5K3K4"6U9C;KC';*G^> M$1'&RNQ-%\6*A.T4"<_!KF:1]P)FUC"UAJGE6&N86F19PW1O#=.W;+-;.;1# M""6_H.,K['_&5EF&VB6%:<]&F99CM8)CW M/PPJ+,-L$\.\[\GZIUO'+S+TM]A(?YF-O$.9++-^H%W<'?(^7H7<'8K O6RQ MVQ+A:0.R[>+O1GAOZRI^V"*)-BJ_3442W]_IWZHBB2O!VY8VWGMHOU_%\I8% M?RVL+:PMK*VV;B^LK3%NH?W.QOC[:NVY^SS#./EKV!]'[L/TS[\8=@V3[LW# M5T.A_F.4EWV.!W?C49IWP$]P.//(7Z,P'2?Y0@1)],]Q-.@^U#]OIJ=9F"S7 M?NOJ:[Z,E#- 74S+AK#P@I6H&#YXO M>\S%PUWT.(!?#&FN[W;(2T/:HWG2'GS):'LT2]N&I.!S*_.&@/;;1E$N[$Q( M?_G*[LW667&ZQ8+0@G!?0=B*$T-6$UH0[C<(WSLW3%A-:$&XWR#<^%'(\2"> M(' P?LK MY/8R)?B0>;/\AEE2_74[#%SCRSH4??,G.&*]E6?>A,F4;IXH)/V M%1\Z3GO?HN0\^^GLDWOQ=X.[6>)GOS@9WV9G9H>SC#@SM71($.1'OY_[\X/X M7X^&\?A!,V_PH\'P-AXL?,?RF3Y^R9-GE4W3J3U'E]KE6S;'QP^,[X^2F;0N M)TRZR;#_6/1E_3\.D^M/" #\J>CQZ2KLC@ZOAL/18#B*#IQ^//CC;/DO\Y]E M_0Z<8=*+DE\.X(%SE0QOSZ*K])>#'B98$H@PC2!'Y/#''X=!]@Y(M<<"5R(, MN JX)RC&OE:!1BXC%)EGC(:3)UP8Y)Q'_:B;3>=0^(H H('F&'%7"@]Z,O\= M!LCS-3L$^2N*&3S;_>_]R_[!EY\_/:%8:TE(J*A(Z'N*!HR(@ 02NH(%2!7=<>YYDA&+I4:P"[FK?>"C&X!"!:_HO)*'!/04L@,@(3[,*/J8>*6@"M8;D M"0F?Z[YU)"2582VD,*HWX%AK3!EG"&%H2(A 8&2C,7 L">L=Y!F-K!CV?*$A M("!0W-=:JA+(W&B:/3<+T2+?A%=,J#CR*%?0Y1+Q"4B=)']K!T [\B M[#,=]YLW%UH_M%(\QF?AQMPVFEIJQ'TC-E&YP:*0%#8RNS8*[GDT@HLJ,NN[ M/A=4 @B@L7:D(9TA9!$3TXIH*Q]K#4@J9KA0*V&DGH3?\GW"2U^=)Q81"FLO >&1**)\H%W&AL$3 &,C9&\)'/S3_..GH(:.L MH5UT>!/%US>C(XC GSYG28Z'83^^'AQE^9Q1\OEJ.!@=IO&_HB,([D:?#Q[] M_B[L]>+!]6$_NAH=@;O[R>_C099UFW^>?<%@F-R&_<_E;T;#N^R1]]DC1^%E M/W*Z4;]?M/YR8#RA['-Z%W;+S\5+\Q%=A;=Q_^'H(KZ-4N_'.",VJ->]D\R;2V&/7D1)G_Z7':::\,O:ZMY M^/A&>=5?_CCZ";N&1[Y7' &-4^9Y[.,I'5K'@]N MHB0>S?_B/_[-N-J??_Z4_;#D^"?$M'2R='H[G7( ?LJ%UO3[F7_S?RZ33S.? M%PK<60J14H N$L!BY8EDO\@__IB\\W+8[YE'_'YR?*%]Y_Q"7>CSQQ-\M79H M;'#GVOO][/CB6)\[ZL1W]/]X?U$G?]:.=_KKK\?GY\>G)PV-&*T\8E0_XO]6 MYW\Y/OGSQ>E)Q_$_>A\=!"B1+Q_E+!/0YYC@M=S\]Y7^5\?[+YT"VQ@?!Z=G MOSKE("?_&F-I,!SD9P3B;FXBY68@PH*BB,!J9]15,@@X!(&O?,084%1YI3OG M!ZXZ< 9A=MBH%\5'_K";%U_-#L 8NV1R&,28B(\.(]?-:.GH(3C\;4KA1^/^ M,CNGMY'(:1D;3AAK-69\^13FT;U%UNK$TH, O,T(1<\:H6RQG2G)*^S,9O3^ MX\5Z.M$&6.]%$@)7F7B("N-F R/,722E,'T$"S!B1+HP4#ZMDQ"_C6P?QGV^\/1Y? ^PXGDA'U>)!A6,-[, M(FQZA1K3K+_]KLXN]-G7OSEG^MOIV87S[?>S\]_5R85S<>H80^'"6 ,.Q,[I MF0/IA]Y/SFG@7/Q%.S,VQ-1^4-Y%U@PE)JO8="^5F!"M1V36J[U\EA5UONFS MXU-C*YWXQJQ[A?)8\**?YQ_TXR8>18>9H(L,7_Y(PKN#YR!%9DX\!3X71!/7 MUYHII%W@(J1\P8'/,>%!':2^Y824YLL ==3+RI*;CC>]\.$A"I-H#R$&RXV2_>0Y735'0>:7^W2 WG9Y9_6KUZZ;T*YL1!A1SJ(QR90$PD*14 M:FST*T@L\"0=IG)\R;T+!DGU7L!=GZN3\.%>CK=>PS\9'&E>P,]0I M-&QP=OJK,_%AWOYO1N*FGO4Z-;,YDE;1&R8XX MBZ[C=&3TR>C$M*P>ULD'6K-T\=FI>WKA>*=G1IZJB]EXY5NY9=$KWY=;:@;T M0=^;17I./'#B4>IT;W*G^:=WYOF-A::V;R-U M8Z8S!8MMY]FVYVWG#5AE:P302\0?A70FKU@ 3V :>#2 &D,D=*80)>&4!49! MSHN_[ *OQ)C0>>)!?H^7-QP/1LF#-^R]T,W.S>HT^^E=,OR>O2#SL_VH'_X( ML[I'VV!9O_<:HBHO12BL:" %\Q4C@@I)D"AV) (- )A?PXOP_KBH<#:Y?NU9 M"X?S0X"HQ)B^?'G:XJ?.+=7*^T@+]D@^Y.SO#!-G.#(_ZI=AL3/DY23.3 0<]R A#KF08>\!33/ R#S- 3-=(&M7K)5&:%O_Y M:@8-W^!'"<=+ANGE@^,G\?=H&YVI9XE='037"BK)/$VPQ[F2$%%6$MLG@'D+ MB>V9/T^3B^&/P1M([48]H[%[:Z=Q9Q57GM+*^Z]J,W71O1'Z0H.ZRI!MU?-XJ!,.6MW&/##*CA@U""1E@$&PL74DPRXLSC(Y*9*HO"-G,\%7#O?_[227.#520K% ^H!Y6F(F$ MUY;Q" M@AKY0^:SQU=(+5]+A/DB'O7S@'@4=F^<;C],T_<)A[6<3$F82]'SAULC M?S\\M;-:1:1)]_;1\*38>LDY+;KOWH2#:_/%P/EQ$YMO*F'\EH#?1@^$M)19 M7V*YL9GZC@(!'WI2HRRYU-?&F#".G#9?:0\&QJ"=M=P*[?D T64N.I98;M[P M]M:L[OEHV/VCX_P[^ B@:I@#)N6'&):W1T5"P_^K7+XJ8&)'@]ZV>9"Y%P^.-V;R"QD=ON/ M4=Y1OD.5^4@S214?X$^3,=^$J7,5]XV+%?;[ID>6(IEY7O\2M9,_/,LN8LQ\_IC;.+?_.N=TG4C7*C#2(G MS[Q.G0_F>897G71L#([T9ICE>#B3JW7,;\+1TUG\"!\/-1OGY,?%1'[J..&@ MYWQ ,[.]-&QO.EW^P\PE^U'>W_PR&TKQL/R>XGPD^4C#=.1(X/3"A_3C<]ET MZQ$3,V=,N,322# ,.?65+WV!7>%KSV1ZK_-&#/&2.K2(:#3,WW'YS(J/P'YSB3P(;ALNBU'XY")\N'?"H8JF?,!FC. MQJ8G 32#_5ET/9Z4JG#.#R^<#QF=^6>$T<>BP^@FSO.Y[K)\KG4+B,EXIY"/ MTI_>"= SVUF4"]>50DA, T"(@BQP#: U5$'@"R+J$G&F2Y.M3(%O"^@]!K3! M4.CTP\3HV[#;-8!.P@R5&8\GF0ZL_=8Q_'!8VY#>&DE@WI*4.L/PUJV9P4,G M4_GF<49%9A'&:^[;!X?&7'3.T7G1>,M>P9#R8"R[C,AZ@T9&:MEX]SC/"T6(,--M>6R.$? M&67HC15RZ+,19[0D W3=;>T,?+6X$HJEDZ63I9.E4UOI]*I(UJR&E@W%<]YV MG&_R[TU2&177T>%E$H5_'(97Q@0Y"OL_PH&THV8B\R?6C2R0J6B916W9F<)/%-ABO$F@#X;J< )D?/4">#CA1 <,J MD-DM&KKF@& 6(4Z\ML9_)K?;"HN4WL+5FX:6&O M]TAI6OOL5+6^$[E:+/).KR99J#W>Z]1D2RT+.U4[U59/=:=,A).Z_:"6K.]& M1?$N+.;Y9(]LPKG3C;+)QV(+;'>7]B7&+L?5J4D*70^X#"#7)1 A#P10$NH% M% 'EL>R2E*?&;DY>=YP:3RM=DDS3>%$Y:R78J=JI;ME46P7:75_3=YG?%AD& MNCX?IB6K^5[& )_)Q.<"*.1BSK*#NY13 7)C0)D_"9'!O#%0DO3/.46]"4$W M;12LNFO91)+:U9)DL.QX[$#,)!-P[[62@Q*UB6 M=4Y'X: 7)KW4R0J1Q;U%1XSQA_"GVIRP9VNFOR2SL+%-X;<4%=Q$9F)Z$_7[ M)5\X'\QJY_F!DX*.R[/O%F?H_BU*-Y:P.WN?-"#,%3+ $@OH^M2E$M( 8^0K MST4$TAI?(9O^AJ1"XXFT;^'TMZ;WOF\*;G8T:E*I(6/,]"9,HM09CD>Y\,BD M2,&N-:4>9@]79A5,3<__'/G-<&R0IX*;ESUA60&JZLHT'\:3+A'0' M!O3=V+C-Z61;T9@34?[7[#T,AMZ]X:CH>/ %B0Y$N",Q+]F^G.Z;^=ZF]=JT M7IO6:S-$+)TLG2R==IQ.>YS66US[K7V/"(FEA[(-#J:A](+)M=^*,1G([#R*TM9=+O'D^KOBUKO_ M_/U$SUSOUJXA'YLA_H^]*Z+9NR*$6&S^0]3Z>]9>6=.QY<;#PMFOK3;G-Z,U MG]FDFV&J=^6 -4J8;T86.L='3G!\HDZ\8_75.3[)1'B-;GE_4"PP&Q'8GSWJ MM<]UIU+9CD?1;5&FZ*,33+> \A+PD_(^'\:#<-R+1U&O+9=B;'(C^_T6>WY6 MX2I3^;3%J'KC* M^N"G)+),^2Q3S@@PPXW9E5RWT;12V<@,(\J9,HWORYI)D]WS>;[-O\' \NS, M\@G.F=(*9'F?KJGZT,#8"Q!& M?&F;I?)O\QKA549+^7T?_;E;3/+YQH#_9GX M5(.P_Y#&N0"N^-JP>V^2T)SU.8O2<7\BHT_OHLGUK9;A7[JJ<&\YGBKH:X2D M[W//"WSN(T5S8: \H7$0-,[Q^*/S6Y8H'QNQG+EP&?.:+_KEYXSW^\-TG&7+ MAI?#\:B\4N L3O^P#/W"14,M,GTW2QO)7*&1+PWFF98&\)Y$$]KXS/5Y\R*< M?,Q$\2@9]M.:(D5KYVJ:\4-V IL&(L%4D;V+NO%6>3[?SC(^?TXB_ZK'8OWP)T MK^:Z+_:"\08\I@57(A!N() "8K+G)@"DC+/&[07XT?D:71L'+C<4\CM*K*7P MTK5 ?%_M6@P#2G*#B2B% &>(T((V"+NN;)Y/UB38Z#Q<&#Y](5K@5JTP;!9 MVBB@F6;21Q)"YKF2"N 6M"$89XD:#?,I^^CH^YOX,K:;$"]> M1(3%9L(W\: MJP>J@%%DS"%7,8)<7A)'^,)M2HZ>FS_#D8U4K4!W#&J9M+\[;-M0/\< 9W0S':3CHI1TGNN]&=Z.L<->DCHX3WF:EN-*?6C?N1:=" M7@8EN>HXY,(8GCWNN?RXIWCVN"=?\0,XJ5[L6+97NQEV/WC.C$ZN)=) MWV%R]&_=;A1=76V<5LVI;G5^/F<(O;_P7,/9UN+"=R=,TVB4'KT1/#L@*'9] M?GNSEB^ON_[KY?"%!%S[S/_]-95( MGEON)3-=^2S3ZF&0R7P6EF.E#,B(\JJ",/,8\S #+J70(PQZ"*I).59?>1#* MLASK.#V\#L.[HXQ9U*"7_4=7G*)&7I@D6>WKOX;] M8GE7#OSU07Y&F' ;96X5K;L@FP1U;6=/D;: M1UY6X0]!P(@/&2]*/0?0)T%3LD7\1AJ1+:"#.=YIV?(Z]Z/%MLOYS3 9.<:- MNW7BP? (C-[N)!S8!HV8T&(8=!IHTCMNOI[;>^5:3BX!2)XFZD3%Y M#-]TG$$T>B/V&G42V@)*4H$2*,_EG$&-@? Q)RX/1*';D"<1F0-E0>:S*95/ MHM&ZU9H$'0+@3AN4^^RL[C<8VR( 'KE<8FLIT\_$;P=B0 M>\=0!S*VTVC<.??NV/AT@]$P67 CY%Z8HJ("FD (8HP]A;CP ^9+A8J[LWQ* M%)X#VI1\!E_KB\E*U $0[(+9:;VWG8 ,!W *&>03CP@B!=5"V,> MD-Z*D&E*%Y$.PTV&&MNO4YN<#>L^2GAXJV'X3++0+AJ.'%7@U )A0#3 M&OL,^!!I6(16-/.-Z?@4G/D2J)SRZ_;=".Q(UJ12>_5:MU8;6M]N7R%,JOP! MGW(=,$H"J@14OJ\)+0(QO@^$4J^"<#-:%M$.VW,(OS+=L*%SCFN8Z/RM=!?# M4=AO5BUO,S19!4UH+%_B0]>8O:Z/H /;@)F&_<7V MNHO?DN&=F=A#GEF;)=7>9:DI=F]O 09EA4%7NJZBKI0J()Z&GJ*ZQ&!VF%X\ MQ6!)Z6_]<#!2@YXNB;W.J">''9[5/-GAW816(;2M>F\7P2B@J/;V.*?20YAQ M!926PG0@A1$IM<1SV2\K@K$A_<@[ -FMO6TZ.%;4E1]<._TH3",G?_7A\.IP M;#[LNQM3*:57GD- 5..Y0,BJ$'JE M$OM7E Q[87J3+99 $'W>!?CLC7_G1U>1\?I[SBB\;V@W2#G2JUL29/AH/NFF.5&'<$ M:U*KM<^N;!5,VZH'=Q*9LE*0OD!"29$=T%-" TT@*YP\%THNY@[JO069#1UU M8!W)Y4XC<]<\OC\/A[T?<;^_OS:IA!7D( Z(D@ KX M,4.!E.^;3S3DPEY=6 M4F]]:9P(="AN,J+96IVV3ZIKF^&"V10N% !J6)T'F'&!H8]AF?GL,AY ?P6X M-)3""45'R"9CCNU7--ONLAT/1N'@.LY*24X<-KL;MP!YM$(>HQXD 1%2N\KE MR,.N*H(GOLNAG-N-"V(#K>AK_#WJ5?2>6(EK/84@.@SO]A9 J^#95GVWDW#D MM-J/(RYFE+E0> )AQ1757A'+A $/V)OAV%#N)>D@6TMEJ_RSR?F&C9QKV&8L MR@J+5.+ ][!OL.@B%P/,89G[G)5;F0MHSN0^;R!XB6@'R$9#),^L:FL5XU[I MO]V%'@1PIK@14XQ0[!MG4%&/ 6.F@@)[ $&^[-S!!L*3D'9PHSG.K<5>T\[C M]AT]6*8Q5UA3;-:T-QQGSNE;L+IE!0^?(\$.5$2$ ,_DEQ,B(1,,"(I=#966 MK(AC:>BK^9V6B<1:FXT@ .P V&@]U5>O:&O-AUWVJZV L@(* CJ3[TMH8,23 MEE+Y2C&9!=X+NTIS[,Y7NULDH)HQI#AC'?_WE]*NOS\[S3#G^V=&__7Y\\;=]WLPH M;][H5ZD7;[U^8W\5W0Y/W*[^SE5%F]8,O0L?LNIY&PJ)M=) VR(S"\Z_&NA-77K!.ISLQ,&M_:E$9W@D&4<])[J_ MBP9I9,^=U&%05GM%$C#,?0P8ER* Q/4)*%.8@)"\KCYQ1M^9I/9UZUN&.PSM M=CJ[]<'V%8H(5G7[F>L)P1%''M6^1H@3/RBOA,("S=])LP(4&XHXP@ZBNPW% MG7.(IV#KIO5Y,[G%F!< 51C071+'"1![.B M<!CE:5_0D/@.LA MCWB!]+C'78$^PB5_A^45HF_APV<@:&B YC=Q]PQE;;5.,(S M=U/1[(J,@ #HTBS,PB1BTV1P3\\Y?:_!D:U-MX\[A(^*TUF';CDB:85([ 4D M4"0P8,3$\#WP$"PK16*CXQ:%88X'W>%M=!'>/RZ$M&S&T2,= !H]1=4Z/.Z>FY>7 M.^@/LX%%R:UU\R;@DV#VK")'W(=!P%Q&@.NKH-B3T :(>NZL8D[16<"MW[\3 M'29VXAI5Z][M!GX(J%(_J?)\)+@60E!$J8$0*NZQ4<:Z_43NS?K4.5;?1VT^)E68\5-H8W#7!4 9PS ;@2'J8!H41C#*M=ZF%8 U D ,G-87G@4>X0HGN7((8]ZL"S& M1Z'Q6%\K !I2[KPC1*.W%^R6 -B;RY$W9P]LM>G.*F!+I+E&PE4 ,R0H<#U5 M5!?3A'KS5R?/ 'M],5\$.V:T^Y",9[WA/8&[,S,/5PIFK@SR 0NTZVI-##ZY^4>6A>P$\[PY#3E#=C7H>;-$?YG& MO$_CHT'<-_-/LGSW!?@=YH\R1O67A:!MVAULK9:T#NS. A%51:BQ4 KC[+@6 M14)18YT&Y)2.S"_*&DJCE 7(RT=I721&?G*36" M)2Q=I?%<)M&4YN<9R?\:]IL\2;F3V7S62=P1U+#J[+'K>;YDV&4< A0$4&-1 ME ?0E)O^KT.-S8'=4S]O."@UV+^#CP!.H'87)L[WC%,Z#@39M?5@\OV<>OOL M(-&!".=J#O$.%^)1SSA-QX42G-%_'<>TW46&0;Y'_0=KO=8 7N"9%'ADU"1T M$0T@YXQBPHH<"9^ZVIU+@9^LZCITY-/0CVATZ[1U-FNKX-]6M;J3\&.@.LG% MB$(>D[X1@AC[%#)?Z++:-]'S*4HO@%]#D=<=/[J\:RZC,F_,%BGL.W=AW#N, M!TXWO(M'X1Y?]PP9JI!&&<)NW7O54AJ M*@,'=3AOTI!LO\+:=K_Q+!J%\2"KKAHF _-N>V:R#H^LPJ,TAB*BBE W@!AR MX )1WL3'I,OH4SR6!-8%?56W.[X=]\-1U/.CJ[@;KR\E%LNLVO%N6Y:MPF=; M=>%N@E* F>UYAHTGIZGO0_B4:G5Q?A_=N4:6JH8[Y[MAC!)FM$ MSO/[6Y:^*4@LR!BS[N=>X!E5>,:2!YH"I#ATD<9:N>6Q:5<8Y>LWC^<5]/!+ M\$R:MI%W!L_VD&F^G7HS[)L%3;+;9\%;M]J"> &(9V)A M@H- 0M<5C 1,"F8+J\W@;X+Y@Z$O@C$#55RQ[2#42N.@VZ;&[Y]:GKFQ&>> MG[2JVEYAW9NZ%OY=CPBOY6KX73GQS@6KTIJE8D(1Q%V-E%)"!)04FV^^@D(N M.:6G!KT-VBP"P Z C=9D>_;B^%:><" MY082&8L* \C*)#7._+D-_U?(G(:NCF.L(]=8=9" ($% '7TY![!G:("X4U11[7V6_"1U18\]1J^&_9&]?" M4'48>(X--C&R_../R3LNC80SCXC/3MW3"\<[/?MV>J8NCD]/WI5V-2/T3D_. M3[\>^^I"^\[YA?G/K_KDXMPY#9SC$^_T5]VV 7^(!T9&#,>I<:32CA/==Z.[ MD7,7)9,#D4YXFU_8_5/KQCT>A.->;"3:"D.K'BM7'8=<:*>M)B)F>C\RS4"I M+^*!L2DGGV+UE\.P$'^V0RS6WZNF>5%?< MQTGTPSD;WH9SANR/N#>Z,7^:>12:NCOL]\.[-#HJ__C\5"+ M Q23=Q#ZI\\'U-,M#K(ID\?*(,&_3KN^<,'W5S&M$ MZ<5-$D7.KZ;A)G6T$3^]_72T]VS9S^/[YQ9]#R&/WV'MYRGQNF#;VECE/\># M:$(])#M.%L7<S08 M1QM"T?NE/;QJT^BYM6WU9A&& $8,5H6; ^HSA:0( L@0E@R)H-R?=@GR:LZ] MY*SQM/2=/]F'_NW";Z*6 0,=R!O-O&E=9DVK1$B;MI^M!-D&"8*KPK8:8-=U MF92$4RV\@*- EE> $B7G,ER62!#1F 1!K(/A;M\C;R6(E2!;+$$HF[D62A-L M! ;S*=!9>0I6EOY4Q@3QYDI_+K=!_M:(!"&2=P1NLJ:+E2!6@E@)TJ $X94$ M"3S.M> >KX(?(8%XF7QX K,%<5<;D-TI $(;B#A;WD>)N.Z7O#-$]Q2R;\ MK.7>;"J4NO4N&?;&W5&I8VUAJCG+EO.J MWK=PC0FK-7EM-G%R.CC(2#Z\* A?T76>@'F+1$7*W M*U&U"I:M/<>^BRB4,V6_(:?:#[([BJEVF50^*E 8 .WSX#4H;"S8#0'N<&BW MRRP*=Q"% E;%(GS$,]@AK C3TB>N4.7MX0*@ZESCBKJPF7 /HK@C4:-7GUH4 M6A2V!(5X!H7:([ZK!?6%!Q&6GE]FC&@)L52OU(4-H1" #H*[O6VS:T%7=3LT MH_]7F#.><1##[C_'<7:98CP8A8/K.#N*%J9I--KG"JG/ 93.U!>7$#$/>P$6 ME!,6&!5:;(8$$ @Y=_P_P^CIU9^'PUY^_#]*OL?=*#T?]GNS*[-./Q)W(%Q? M%0!;6Z2=>G*'T'5:&S,GR0=QANU M8RT:+1K?$XU"SE[^[6'A<>$& KC4UP"5+B0E##:J&YNQ:%D'BDT6%[9HM&A< M)QHEF$&C%)XKB>=#K+E6'@N"HH2O"P#W4).ZL1DTR@Y98[VJ%J&QX6U)N";W M\]%+F.G> $DF%4&[CU.!MJG0;\N+9$[$ *K$@ M\'P"B? X#ACP-Y32BY&.7 MS%WHL5@,K'6SDZ . *VH![R=A3-M=-@*@AI!0*K#B-@G>2$]Y'K04P#[PB^L M:<8\@[$C5Y]9U%S9:B9CNT%*GN36&2 M",IQ9ED2HCE1 JK"V)1NP%:$5'-N)N8=OHX+HZV6LGC;.-[8S#U%) OO!E" MP*.>+P.!"N?.F(>:SU5M>%:%-86W[#S-&N*[+Y/?Y]R+OD?] MX5UV->$>QX_@S!8K1AX3,'"%D'Z -)/0+YQ=#U,MYW(O2W*J0<^OB*DG!M5: M#P?1#J--QFBM@[NE#FYK8#1SO[<4 &(?CK,PLC!Z&XQ0!2.N-45$8>EIZ5-(4.#[!8PHH\AO0!LU=*J-=P3; M"1@U'45MKT-U'O7[61 U\Z=NP^2/* NIVF(I-8B ,^%F4= FSMHIT,[%@X,C*%(Q%<8$R0&WA$,(\# MZ>)RRQ%3/F=GK@3'YBHP4&-D-IJ69N%HX=@6.(JJNBV C )"@"N$YMCWL1<4 MVM$#4H.YXBBK:L>&#GW3CE'I%HX6CCL(1PPJ."+??(+0:$1?^2P0,BBKH^BL M/D/P5NW84 B&=Q#>;6-UYS;C_AP-HB3LY[YCV+N-!W$ZRG)ROK^UL,)60P]5 MABE$DOL^,7:IYP5"2>A/-2'TB)X_(3$AJ(&>>D3.#3B+"'2H;+(.0FNUWCXI MMZT&$JETF$N9%)('F J7$\JAZ5%>!4:DGC,I5P=2<[>4X@YA3=;VLD"R0'H; MD%AUYX$,A/"HKS .A ^S+AXO;^54%,SM);Q*(S5TU9X!DMR)W00+I!T!DJB M!!D/./4P\'R*D2#)D\^M-^#VOIMN=:43]_)\ @! M%9 IU)Q2C7SB42X9YI 5/IKV, ?BTKH7*E^)D."@N15AS:774 MZ"[[JUF@M0K5!C;W%MD(SN3-4 A<"044#"L:"()A67C.$WZ3R&[.>[3(MLBV MR*Y#-IFY?H%XQ/5\Y/M(!@%'GDMP:7PCI/UF=78S5C@E:RA)8Y%MD;W]R&85 MLBD) .)44$0\SC!1 2GNY-2"*1WWRM_S*2BM<[WI%;\<*[ M0 OO?]B*\B!$@)FC5=AH;F41$1NPMJB%1%:7.4A78 HD\J6DP(.>SSQ9[+_ZW!=S17U>@MH&2[>3 M#N4;+=UN46M1VT[44EC=O$ %0DP@8>QI1-W U:ZD9?H1@6SNYH47ZMJ&"G)! MT$&@T4M]+6HM:K<4M;A"+7&A0,0E7G;E+R#*HU[I FNEP%S!RA?JVF90"R7I M2&IU[1Z6V8L'W>'MFZ],V\4 %J45>C6"4#,H)7.YYJ[P/5[XMYYTL3=7.F1* MW^.RX@ZF]O"9Q>%.XE!6E;2$),0+&(.82D*E)HH5=X089]3E M8?"1GU0BT.+PY;@D,$*A]3U*"0>"20--!5<^4%YL8B""LY= MN?5B?=@,#K'H<+;;=NFNW99U.C(-A5/8<0;16TNPKB/VTQHDX@J)R,,8N(&$ M5"GD(ZBQ2\O:DIIZ+0%[510BR2I:" M(.8"GS,?(\\M"\,RQL3A2!$&1T ,$XW.;C"OJP*80"!J]=+*U"-R;W<0)ZSB7D5GUJ' >G5%X__;< MVET,X'!(9FJI Q50WX6((!\ 10-89@5P121]"M@J;A,DPUO/#" >C,T\B\#. M<)"Z^2),^EUD2Z#O1TEH(!(/PN3A>!3=9BGT&;J385X1[-C@/(G2M5[>S#I< MV'BLC<T,[ M/*"#FS7FK6:W>&X+GGF%9^"YG$A.0;;EJC0R:"X+0TD_(.Z[*^^&BDH!8ZGO M-IYW;.IN.Q\NHT%T%8]^*L^V[G'8[,.SZ)85NID@F"B7&WW-D12>;]SR M(F[F08U /;H-:HMPF3NA^YM=Z-00PGRW'**-W@SXTB6N&/HM:]P4S_]DX]T[ M"]SG<"M@A5ND:.#YR@6,J8#[;N#!,NN" \S7Y:$T1#B?R[=82?LU=!U31\)-FJOM]RJW?:_W)!HM M/3.ZPO)ALWR]X3@K>ORFH^#O%F+X]W60X%D&V08IQ:O,: D5-[XV$\8F%QPS MC"T,\)^(:K*'5(6LLH;7*NMO->BL K:76 M.DM-SB0C$L^7$@1(4$YH0"#P?%%>QZ80G<\>?MY2:RAC6'8XLJ::E5164NVQ MI,*5I.(^13[!2D,-@0#2EZ#T*8T=!N?J3[S X&HL'TKP]=4-WPI)M6L)%E7$ MR[F+$B>]"9/HZ)D0-5[#?7G;))1W8'YV+7=G?G8M=V=^>[.636\IM?=F#C=, MX^Z&N'G++/OM-]P1F"F30QAU/41]R5P?0!T@#MQR,\ACWMQFD Z3@9E6^BU* MSC.[*^>4%VX*E;^9->31U(X'2^UX\-&>:MC/<(*5*5LA4V8*_Q $F!$@ OK$ M1SZF@,CR:(8K()L+!KQ4IM3MPKQ-IF!A98J5*5:FM%2FS)0R\GQ/(44TI![R MJ0(\"(I"*HI2/'_'R@IVRER@\2TR!7X$UDZQ,L7*E+;*E)GB3"[$C''3%@1( M$T %@*7OHQ!B<\GR*]@I#(")2Q!V07%(71$0N'.EH%;2\4U'$YJLTF@1;Q&_/XB?*19% P2- M2R^XT)+[&'#ML?(J @#F*SVNI..;1GR3>Q+M=^FW_OCM^/8R2ISAU20/,77& M:=1SXD&5FNB8.7?'_4F1L;?F*>YM>'67)VY7WZZ^7?W]G+A=_9V+_B_)GGQQ MR9Q&/88-6]Z(@RJ>3J$4VE.,^BX- BDEDF4\G0 PEPOTWU$VUJBG#%G"ZVAB M79U>Y?9T>CH>I:-PD,W[Q7F'$ZOL=:<<10?P)HM56?][ W)TIY$E9%70W%?4 M5!=RFSLPS7HK":1)4"3)\EW)C;;7D]L:1[67M^E@3"I8.EJEZBL^!^7W)B5 M# MWTSBSE]GM9&S(PI3QZLH;:)PF5T(-O>P(A *" MDD)[>HJJN3,0;X=IHSZ?Z.!&\YL3+,&'=F MNMTHN^ZOB0E?W$1.V.T.;\T/'\SKG,%P%*5.EBIDGA2;UUPG8=^Y"Y-1EED/#:LY5/ @'W=AT,@Y-MC$R/*//R;ON!SV>^81 M\=FI>WKA>*=GWT[/U,7QZ! M&?6OW\[T7_3)^?%?M7-\8C[KM@W_0SPP$F,X3HT:2G]JW>C&@W#?S3"[Y>>:65[$MT9;G$0_G+/A;3AG,?Z(>Z,;\Z>91U&KU.CS?GB7 M1D?E'Y^?:O&#:3QX:A]"=K X7#QY!Z%_^GPP9UX4[U_2M*RM\:9]?UE+B[^* M59$L7N[:\#9=1S8G3%\U\QI1>G&31)'SJVFX21UMQ,^FCINWU:/=CV4_C^^? M6_0]A/RSR;-K6/MY2KSN2I6ULA'^J%OF.DG>W/J MSL_/KN7NS,^NY>[,;V_6LN%='=KN;1UC7D7FF4YWG"31H/O@C))PD$X*@#IA M[Q_C=)3G[-L3.G,V,I\IVJL8%[ZO&=-42>[#@,.BP)'&2LY?^95;.MZLH3,Q MF8/)7VA(^E1[474,!(@"4J#K3[01!X M!6_AFJ8$Q$]6.%CA,!4. E;"00$L M72RIZW'-79<&&I;"@1F1,5>4YMV%PVH;!"\1#HQOY"Y1*QFL9&B]9,"58P!$ MH%W7%]1X"Y1RY7)6UF=4# &_=9)AM>C\2R0#[7#19/W4'9 -S\<8S(BW*HXP M'B21>>J_HIYS'<:#=!*PC]*?'(./;IC>.)GX<6ZBWG64=IQ!-"D7$-[O<+7) M9^4$K6[VI2J)4T,-?YR8?[^9[X<]LWJG5T9,O#E(\"(7HD-)DQ5?MP?R^Q0BWF;0 M/H=97F'6@]3E0K+ %P'T!,R*W!5!/P"4/W8H=!>Z& 15YKD"Y.A*F$% M/DBW4'H$>W(NCWY32J]AIQ7A)A/+ML=,W:_=[P^YK_J3 M,_%5:UQ5)XFZ_3!-XZLXORES-'2BXK[5!IW8G8R"R9E[ZW7 !#$P%5RP@"NB M""E22#5DT'^QOL[$Q-ET1;I/(EY!,KQ5I][Q(T'2F'N[3%BPC:3(;X\4L;'O MO47]3$R+(X\%@5+ IXQQ-T $EU8ZU,"=2QS?#.J;];-1 M,06SH[5 D6!8@'PC8*?Z'K$_7?4]H; MIU%W;!X2-[I!O=%*GIL5 !# 2@*PW,1G&(B 0(DP\D!Q185/?(CFKOA=) '4 M]S#N9\MA4)@::)Y/%Z62 R7DWRGE73::S?(,?]C@?1O4]RZ#>"9.YP,,7$%< M%7@*:!\07&6A:,'T^X.X,>]=-!JRLR"V('Y7$--JA\[W72ZIJYGG8NU)/P"J MU,37$VH=]'%#;O7S>:)OY!3VA]BVYM"PQ?#4=BO+0#SYO7'9OU[PW'FY[]% M5+2T1-"K:E@]1Y]=+W(%@:SNE0?()8(%F")?<*2@H+B(8/K8)UP^%;%,)?> $HD@YI[O9ONWP ^( M5QJ?@JNY2NZK2E*X/74][ <)(NH@+18B? M?4?']\\&)^=NJ<7CG=Z]NWT3%T< MGYZ\*^UJ1NB=GIR??CWVU87VG?,+\Y]?]/)Y]@6#3,WW'RL?,#&I)YF;W:C?+UI_.0 '^6%_&M42DG MT0_G;'@;SAG@MV%R'0\FPPO'HV'YQ<2>S[_Y$?=&-T=2?B20 (;HGTI%;[1_ M/[Q+HZ/RC\]/U?K!=#NOVO?.)?."W;[)JQ#_T^>#.6METB86-\&FF^@&WP6; M?Z)]V<*?O?)&D:UTB2ODM2KE9&U7&E_<)%'D_&H:;E)'&T';:^Y*F>UF +87 MZV_\\%OCVI^/AMT_]CS'#!\XR?#'^^6;K9!9LS9V4&8(640D[.>&WK M#_*_O? N'IGO:XGX8L)9AMDMACF+1J&QR7LYB^BB"(KE$Y+:7;//7 ML#]^3;;YMLN3/3EC4+/B;M@/!]W("4?.KV'2O9F0"(..DZ7GO'FS:WC63IPG\%H>FZ714O[DZHKY M= ,B(0M=%,$&2,ON7_]F)@ "%+70%"A!9';,N$20 '(YYSEKGD,Y4D %!$' M.:42*0)"X2N"R4:WF\KS8$5Y!2J;UFY^E7GV7]+;R[3HI,Z4-J7=;,'/GZ*MTT?$". >SU<.+A:'X-B M]"'E0_6:[C3,C*9G)"P-!9!0>W;'U\@CF A"B"G'# )@TC4)E!JDA!0;V>I= MJZ)"E[UCTV1&("8I!B'!,:0@0!Q&3(,00H+Y M?L@WTL3W!$*M7]^X]#_.:F=^;X $.1UIR\R!D@,E!TK#!"76.9 M$90OXE#:9.'G4(LK'>V0[4B1[0E@DZ %-LJ ""02$%&*$&8?4TA7GHSG^;? MT[2^.)\FLY<*; ^%UQ#JM$J.A:*4(#]B4:!0K!G1\)JD@@12;%2:MKQ6A9RZ M[>2J4)3]\G1NWEE&W])BG)4;D:FV@-- @E/8]65]&T+^(+I#/L6:G5(9*! ^ M0!3BF,7<#YB6?L*P9BPX1EH8;LF:-@?CU3AS:T'[[[3()TEY;6A ((@^.*YT M7#D4KJ2T;8N/:(4I*)22A M^Y.>3N(-/3VYAPG_(RT7^A7&\U/H/XML;"H8-=Z?;+&+H^<0$Y AZ-B9D>DJ MIC##,A8J5DHP9L+:)/)5#.\I3_NH"^ALM>SV9^HV*2:V0EF<%U=IMEA:/\VP M/4+D11J0#U;?/>1 T9'V&&VXGH*VG[C/ "0ABFD,213%3*% P3%@<;Q=L6:)X=YF4Z<1V+$QG M96(VZ17+Z.IU.O$6NJ4'/S%LDWZJK^=0, MH?0*0TQ%U3?+6VIM:S,UY6N5MO+:CKC!A*U0I^B"B!CF0+!8!#$AOL]1;+E> M:CT\)'RC/EZ5AF*8/,Z+B^3;[^U>Z OV6_\NOP\B(<6%J%R(RKFIM]4+1'N$ M47$>"B"$DMSW(0&(1,9-S8((AH2 5?Y:5EPN*A_U[S5J7^2!V;5UE#CKX/5O MFLOKG,*+_(X+^S>33ZAN],(N!I7;'"[[W;?[?[Q:A&L4PR%(PI$ MB"0.*,1*"(9,135.M':!!'A-+<))_OU)_K>>/&/+[MFTF57=/2^SA?=<^LRA MS\]%] YG?FXO#V=^;B\/9WY'$6DGK$W\%B 2**(,D(@* @74BK#1@V5,HI"& M&U4:'JK[:[J1VB1OK1=_S@OS7K70FN_E"//R]IPG(0@' 1.Q#V# !0U#>[";!RI4C /^4LSKF.S04V#"K$C' MB[PH_ZPW]RHMBGX/;QRRT^UH)^Y\S6[W#]77_)24IK@MA"99()"/(Z $9C%' M*)*1D=)1)*2DB*RYFK?)9%V!<5A#\3X2W'H)3C^6W^::Q!X\ZSO@/\*)N]UW MNW^T8E^V8A\2*D( 0WT- --'$-AN[X) P!7G[(7$OA/5AUY0X5.Z<#'@8W-Q MNEC3FY^?V\O#F=]1A!X8;_/G)%0RH$ %)O,^ D$@B#FK)Z (&<2;Y3"TD&IC M#7WY*/;6'IF/$#B(\N_'Q'H.1M_\_(X"1CF$71CE7"(F4,0$QRS"B(>1BB.D ML-*0NAN,.@0<>DBV]P6P'V]3^[K+?#K1C_"3J>V-FBR\_U[.THKOD!QYADYV ML=SS8I(6S2SQ_)LWR9>7T]3[#V#_U^\*UF\SOX#Z564^S2:K-PV&E3%NSR8' M@D(?\D 2R!%C/%2H8N4H@BS8T(@Z)X"K0@95.'[A-&=.XN)7BN[./QT^.GPT^&GQD_>FI61!*$*"0TP(#14( YE MHXO&0<#O+^?>/W[N/X>(C!AS^JC#4X>G#D_[QE/9XBF*?11S $4 P2#*-;: M:8VG 8?T_D[P_>/IWN(=6+(1)[VF>3@@=4#J@/08@/3)NBL"=AL-10#Y$OHA MCUAD_*50-)JI"%#X4IIIW^='MRG&8IJ*LT%@["; [(W87!TW!\H.E >GW8I. M\[<8$2Z 1F9%8LDABUD(*DP.<2#(1@V ;3&Y!\64?N"V:&HJ9KS I!A=AVI;QQ.IW6W_[G"3BQG_7 Q\WG>^9]D=VDI?7.A$A?VRFTV65S_*N5[ 0@3G/[4D)2FLVDR+]-? MFS\^W"6@DU4.0YLB@T\>3G&H7H7X3Q].-OBB^NZ1KV#?7[$7?!?L_XGN90_> M]JIG)UXM.>W)LTUK,F936/2:O;8!GN)'YR[NSQ\ZS[YY?].7KTLOTC [&=K1 MF=?:?G84NU_%OCVKZQUY,JI648O\=LMCC7O8_!]()MP;.;2A/*OFF7C>NX\S M^W<=U;M_$;=>.$]@CMHZ>!4T_DH,]4A>G81HC7SE6)UXY2OH7@ M$T*X3?4/51QR'BJIH 08P#B"3:JJHCC8:/JZ_;$I\7Y0" ]W[G<+P!QYE1XAV\T$.,C@!S*.91S*'=8*/?441V$0=M=2K P8"14RI<,J B&**@-UACX01"] ME$[W&D=U2-_'(=U)'(>8#C'?'F(^"9BH Y@/O8$2Z>YE($V\(Q9S 2!(::8(VD\4\T18X7Y1D31 MLF$510R7A9[@9SV2?%)%%^V7IW/STC+ZEA;CK-P(-M:%5__GA^M7[RO>V.\Q MX\&:80>@.QQ#P6.$:2LCXQA3!,,HHB 6)!*4\N;\?X"58%LRITV[>37>W-E] M[+C2<>5@N)*+M@QY$$GF!S$",HR@9M$X6L6F&?;OCTV_!E?N.\!#1HQ+QZ5O MBTM?H_&#VTJWE6XKCU5V$LQ6LC,0%$"""0]-YD.,5.3CNE8U,4V>]R<[^Y%W M AR"O!M@/GH/L_U'6B[T*XS?I]!_%MEXD4Y6OI]LL8N;YQ ;KR)">>N&C2,. M)-6\&!$04TXABIM<) ' _<6/'_+_G*V6W?Y,W2;%Y%.Z.+V*\^(JS19+ZZ09 MMCOHA=(S!RM5#SGX=-3]EA'IU#S'#!))&(Q^^.W]\@OS^9GT*Z:7A"*!7'4"HH HZEC&D3YQ&A'"[#]^+#VB:) MY4508*<$%I>C,E0'R]L^L>MDAMM\M_E'I# \I2]0TH:>H90!Y7&@!$-0Q)$* MH[K,<>13P?P7TQ=V4?#_G1;Y)"FOS68+!-&'@];PWW2VEJ6(=Y=)F1KNNYFG MLS(Q.W0X*5D[PNQ@\?^88-Z1E".IXR"IK10$!EH/8AA"AB10?@08)"HD.&S. M]46(T0T%04W^N2P7QMXO+_('K'H;1;"R(.B(@K/T7\NLS!;I>5I\S<9II5F< MI>/\R\P^Q2H9@W(X/);61D:$]AEB<%P] &/PP&T^MY5N*P>XE0/$60>Q?]-\7B=47N1W'/B_F61*=:-7=O'J>3W;H,>+%.=QX.' 8_#@P6$+ M'GZ(N<_U_P<8TR ((QR350I@X(=O!SQ>+$>(CU"_[54=F!P$F+A4D0',VVV^ MVWRG1KR,&L')2HT@**( (![XQ+@II/)%DR@4" B#5U0C^A;]W(G^@\D[LM41 M;<;1JCRBE]GZB"[S:*@2Y9@$AR,I1U*.I!Q)#=NV.7 3YI"V\HVBPU:Y$H*U M;DU%. =![&.*9!B$/A&4-]6Y)-SL'/50F6S3.MD>4M#VR>>\,.]5"VV!7"X7 MR>4TO<@_)T7:HP^S[\+=CY4X&#'<9W5;Q[^.?Y_'OZ+U)RBE"(-0R,B',O9% MA%!05P@"DK\<_SH^._1,IC KTO$B+\H_Z\V]2HOB^4>0WIJ[KV_7[F E@7-& M.^ITU.FH\Z4U&]FI?8B0)"HB4102'#%.8AK&JVPM&J]G:VV3PKT28&$MOO:1 MV]E+X;SE@X%U1U*.I!Q).9)R)+4G M'1,#UL;T@(I\P4,6*T0C(3%!>%5M/%* W(WI:6VA#>+UY<@Z2Q=)-DLG45+, M])J5_873Y8BC/G.#'>\-P"=UX*ZG0]K*0X91"%![U"((I00Q$I03&A,(@K!N M!^H;9-UHF;T=C#H$'':F0^^SMQ]O4_NZRWPZT8_PDZEMF9TLO/]>SM**Z_2N M>H9*=O&>5&W-ZUGB^3=ODB\OI^FJM7FO*[A;$_679F34R7$*!(4^Y($DD"/& M>*B:VBX19$%PEY$[U1&J,B]5H>4[+/VQ8NFA]%$2(XAZ;:JP,TWM1A^O+:$/ MV?W^O(W>"2.&21Q_>A5P??-82MKX!0 ^Q]0/PABJ$$D>M_$+)!%6]Q:J-X=- MTZ*L@''O,+JS6B5ZK5SC\-/AI\-/AY\:/UEK5$82A"HD-," T%"!.)2-+AH' M ;^_ 6C_^+GO-#,HR(@QIX\Z/'5XZO"T;SP5+9ZBV$>R0[('5 ZH#T&(#TJ1+Z(<\8I'Q MET+1:*8B0/>WK-V#9MKWR>QMRDVA$82]5II\-FG]4#VJU^4]5Z?2@;(#Y=ZT M6X1:3(X1X0)H9%8DEARRF(5UM;\0!X+073&Y!\64/F5I^6P(2.[KD8P>U?9+)F-,_V3LA'J MY?OU)7C]2=ZS+VY0;E!N4*\XJ.;RW4%N#N'D\4GT,$)V![/MO]=%\XQY\B5] M=UFDR1_ODBL]HE^3Z6WRO=1O^LMU44]FSR/\P8U]J7U\+_QG:\'_.9EH7R)=E,IN4OPQN=,M9LIQD6C_Y M@:'M!(:=!ZZ9:Z"Y/YMI.[/ZW'WCS*C3T_5W@LI>F?Y3;)AW-XDQ9=L5@TO62[RYD)E*]LKM]EDYK,R_37YH\/=[7GDU7V9IL=C$\>3NZL7H7X3Q^:']W] M[I&O8-]?L1=\%^S_B>YE#][V=%[Q(>;E/WFX?LW WK24>TWW_07UZ47::"=[)18?H $P(YB_ZO4/\^ZNH[\) X^\8K\=KM3.?O8 M_!\X2[$W3!V*BCJ".E*"Z@;G_ M]1\"0?ZAPA\;I',*[)%3ASWXYY39H]S\?R33Y4N5Z1K2WKNSWW]+BO%UM3X8 MVL/?XK53J8:2!,-HFP03A &7$J@@1F&()4 *Z/\G(9.82(38[L>WQ=_A<(YO M ][K<9G!%51T*8$] OGK;>].27W/R-D;#")QL$(D& D2QB(6(9*2AD"C4& 0 M23(:$2GP3FEY_8+1[H>@@4,AAT(.A0:*0D*N4(A225BHOPLA$3$/(B2%02$_ MQ%$0!_X+H5#K@-_346()1P#U6IK!H9)#)8=*_:$2!RTJ*1Q@@@(N(&(!\T$L MM7:D42F*08P@!2^$2GLL/RI'!#LER<&1@Z.APA$2;;^-0/&81#Y&2O(HC@'' M^D\20:FB"'+Y4DK2"_8;IB,A^ZP.ZO#)X9/#IS[QB? 5/O&(4142&,9(15AK M2S%7!I^P+Y0&JIU=23W@")%LQ%"OI4<&AR2O&F;O85XFM&'#2?F5::9L$B-+ M0R%Z]S6%>.G-?)I_3]/ZXGR:S%XJS#P89F-M\4H?A'&DV4,AS71"0*)U L-L MVE!!6$;W'Z>NHD?ALM 3_*Q'DD^JJ)+]\G1N7EI&W])BG)4;0:;0,B/Z^P]W M3]A7G(GV>6![L/+_ ,3\453;Y[P5A%01$D,8,T6X+ZCO$V6\F9' ,N20;\N; M-IOBU5AS9Q^GXTK'E8/A2MDVT0Y@[$N&H<]BB$,0B*!23Q6$2J@'RNN]!E?N M.PJ!1@A0QZ5OBTM?H^G06W<'#&Q^;B\/9WY'(3T%;:5G*" (I>00DR"$#(?0 M9"^2R)>Q\)6\/Q;6B_3L2>(=A+6XM8_G1=W&/4SX'VFYT*\POI]"_UED8U.; MJ_'_9(M=7#T'F4TL.G9FS$,4R)@ (.*((1(K @U/AM@'#,N-;.)'?4!GJV6W M/U.W23'YE"Y.K^*\N$JSQ=(Z:H;M$B(N[?A08T7;'ZPZ2*Z7[1D"0 $A&$4$ M4HI 0%@0$,/UD0^ 9OIMN=Y*XJ$P_1"<38[?';^_%+\_6>7,'RUSZ">\"+ M<+03=[OO=O]0588G-0;>F@B2^(@%5!*A>!S[T!>AU1B0"'E 6?1B&L,N*OZ_ MTR*?).6UV6R!(/IPT#K^6\_:LD3Q[C(I4\. -_-T5B9FDU[!;3XP.#KT^;EP MUN',[QC"602@;HH6\F,JM:!D*F A SXU9REBBK$OT&8W&C7YY[))9J&[G,%NEY6GS-QFDE6L_2R@;.Y'3&TV(MAE M>+TQIG8 _>;GY_;R<.9W',)6M,(6^9Q3R23F5/@Q0DS8<]0Q"R'S5;21._)J MPM8)R"-(-;$6JW>;+:ZOT^G$6^2:&O3,O$7RK;J:3\T02J\PQ%14'>&\I=:V M-E-3OE9I*Z_MB!M*V(I T!Y79E2&(?4ECV6,8!@SZELGE& D6B3ZZLT%,/D M<5Y<)-]^;_="7[#?^G?Y?1 )*2Y$Y4)4SDV]I5X 47N&D6& F 2*AI*A&!)( MI,EDB:6,8TG@JNI35EPN*A_U[S5J7^2!V;5UE#CKX/5OFLOKG,*+_(X+^S>3 M3ZAN],(N!I7;[[W;_:+4(!#J61(!H0%&(%%2!)(! :CV, M81C1 KQBEJ$D_S[D_QO/7G&UL^S:3.K GI>9BOHN?290Y^?B^@=SOS<7A[. M_-Q>'L[\#B+2_J0BC$&;^8V)5H)1# -&(/!#XB,"D*( L,B/HGBC1O!#%7Q- M!U";Y:T5X\]Y8=ZK%EKUO5PNDLMI>I%_3HJT1]]9WS6%M]&FY8B*/HL+OQV] MV;'^H; ^:EF?1D+%821HC+&O?Z,"!0WK0Q^'!,3!2[&^8]$7-6W?6OI-F!7I M>)$7Y9\U95RE1='OP9%#=O@=[<2=G]OM_J'ZN9\4\;Q-J0MX$(9<"B&XD)0! MR#@W(AX3'@0T6$^8V2:+=@7&80W%^TBNZR4P_EAN79^EW5RBS"!9WP'_$4[< M[;[;_6,5^P1W,ND#C@0E(:,$^(C1T">1$?N*6T3E;+5V M$S6;G*4+S6GW%%O=AL>>4PB5,WF47C/GV#X41N2D[2N'>82E'_E"A!0BGY/ MBC]&XB# :L.QO1TC]EIV81^U3?OL5NMY.*B!%@R+'T@;.T2QIZ\_-S>WDX\SL.44LI;;L#2$* M:+"9'I_213^G&0[9RWVT$W?! M';?[;O>/<^+''=ICN/6,Q$2*@$444!]P$@!?139I-PAC$*EPHYF3EJEMEFY? MO@^M\"79+)U$23'3:U;VEYD#1H2['DT'S\8.Q(]PXD<.XKRM/L!C29'@#/@$ M ^S'80!P&*DX0A$'(/)W W&'O_VD7&ABV@N[]3Y)^_$VM:^[S*<3_0@_F2:S M<>HE"^^_E[.T8D<,1IZADEWV+R\F:=',$L^_>9-\>3E-O?\ ]G\[+53]4/,+ MJ)]8YM-LLGK@8/BU$XZBB&ENQ3X,@>)," H8J/@U)%H3VPA'=:*[5?I&U2KG M#N=^K#AW(*UP$1\1T&>\Z4G2V8T,7EL_.P!!_%8XOJ^M_M,^E^&MXQR'';TD M!,CW,8]"&H>"^4QA4>LE5.,(6Y7S0;Q7DLA.6QSV.:P M;?#8AMNZL93!.,*0A0 + "01D*D&VQ@/[L_.[1_;]ITV!"D<4=IKUKS#.H=U M#NL&CW6TQ3H9(P54& 8A#RFE,"2RL5<%#N#][5S[Q[J]A0DPD",)>O53.9!S M(.= [K5![LG,-=YI6NVCD,)("C\FF)+0]UG,&Z\<",1&Z;)]:72O48H,CYCL M,_MM:PKZH?2XU^6D(TTM=X!Y1(#Y)%[*%B\%04C!F%+IA^8\'",AK/%2 2XV M^ZMMB9=]9/-2,0+$*715=/(OMF[>ZKK]MS.=[YGV1W:2E]RF]]<[RFV0#E&^2XDLVJX:7+!=Y'OE-ILL MKG^5\KT A E.?VI(:IQ/I\F\3']M_OAPEX!.5A'H-B<"GSPA?A/'TXV MR+_Z[I&O8-]?L1=\%^S_B>YE#][VJN4H7BT;ZLU*V@!/\:-S M%_=GAIQGW[R_Z%OGMEIF( M>]C\'T@3VQLYM%$HJ^:94-2[CS/[=QV0NG\1MUXX1S"'13"-*]^22.//=S3B M:*0+*JTCU)*)]896F-)UB=HKE5_4^]DD-/_B_7RB3H./)P\X[!Q!'2E!=1U0 MML,U_U#ACW5&.07VR*G#)CL[9?8H-]_6ESC"O=_N],J+GB)[X6,M83JVT=2U MHRW\M8_:O85@$(6=(RTA)$10CH,H(L3G3!(0U,&@&!)%=S_2PO].AG.D11+Z M$J?9AAE,.N;#IKU+@8'N_4[1[Z?V_:T#'>J<::$B@#'F*@J !D :A)3&%=#% M0(#X_E*23T6]^\6XW<^T]%FT>: $[L#-@9L#MRZX=0^U^)+'2E!&8\J0"'&H M:*W%^4*2C6HP>P*WO1]JD6 $6)]]'0=*\ [L'-@YL.N"7>=4BZ!1$%,2L! M*)F&.-;D>X>^]'?+]_YQL-O;J1;$M;TJG$KG4,ZAW)&A7.=4"_89!53Y 8JA M"J"/L6QJ,*" J-W.[NV@TO5]JN4Q]6XD9:^59X9)^@[V'.PYV.O"G@0KV".! M+P&3D(72YS(F@0KIZC"?S^_OV;0%[/5Q.(6#$49';'V^7LF\'B9EXE0V=IA? M:0*Q6;"EH1U-%WJIO?1F/LV_IVE]<3Y-9H?6Q/ I-L2 M16@:!3"F$$H%?8% M#[3&45<.B*'THXVPH&7#*A2XV;30?GDZ-R\MHV]I,<[*C8AA7;[R?WKMH/:< MH&&O;J;!ZA0'H#H<1*N6)WD3M2(RP"3FFC&9)#Z!FC4QE[6(Y!$&]_L_-GG3 MILZ\&FON;",XKG1<.1BNQ&W77X@ HA'"/D10(,F%+YM$&@YIN*W$W#]7[CM( M@T8,]%ECT7'I /)'#V"NASX_MY>',[_CD)ZR(STQ)9P%A$A$M($)(N!'M;<; MRQCO47KV)/'Z3"\=N(/GK;43_$=:+O0KC..GT'\6V7B13E;.GVRQBY_G$%N3 M4-(Q,FD402RC$(>,<>9#;OJ!UGGA,:/WMP-]R %TMEIV^S-UFQ233^GB]"K. MBZLT6RRMEV;8_B!$>JVS-KA^*,<10!G>-(9=5/Q_IT4^2>A MBH02VJR&$DD$(AY&LLFI=I M+K-%>IX67[-Q6LG5LW2>96(/5N\T6U]?I M=.(MEK>(OE67//>6'>JQ9:];U<+I++ M:7J1?TZ*M$?W6=\EC+>*RXV8Z%.;?CM*LV/]0V%]UK(^5G$H% B \"$- )*2 M-O59B*+11C7R?;&^8]&7LVO?6OY-F!7I>)$7Y9\U65RE1='OP9%#]O8=[<2= MD]OM_J$ZN9^2[Q*U.74R -R76L8S$*J01X("UN34!1+Q-1_W-DFT*S .:RC> M1W9=+X'QQUSB?=8Q=8DR@V1]!_Q'.'&W^V[WCU;LBU;L,\DA@Q2".!( ^Q0S M)AJ/'E712XE])ZH/NY*#.>C@%>E\68RODS(]M,8Z3WG2& !M]U(@0!!B"!7V M58 Q%7X8M=T[ G)O^92SU=I-U&QREBXTF]U39W4;!GM.#50N^^Q*^G;\93S?XS M)5F226X[0YG[U'G@,<"&Y"0>&- =[<1=@,CMOMO]XYSX48<'&>0=%RF.N*1Q MB&-*?24CG[/&12J#B&S$*EKI'%GA?'KU*;U5*XG\N1'('V>5_G=ZI6IQ?$<) M_%@I@3_H;-$:9I+-TDF4%#/]NK*_VK0CX+J_'3Z_.[0_PHD?-]HCV-8Y0%%$ M.&0AYP*&B"&)A5K5.0#QWM'> ?6A)X)\2A>N!,&Q^4B=O_O-S\_MY>',[R!B M%T^J-;+M^J-5I(M6=5^\H#V)MIBL%(\#X3 M 9K@AX2[SDA'^,DTF8U3+UEX_[VN07;[/V^B=,&*8Q/&G5P'7-X^EO*L4 >3[F$,5) A>9$DQP"D3YYX(YW.XCX**8RD\&." M*0E]G\6\\9*"0,B7TDQ?HW@Y'C'9:QK=LTGKA\[;O2[ON2Z"#I0=*/>GW=(6 MDP5!2,&84NF'$5*4D1 V56H!%V!73.ZC$ <5(T"<8OI$]Y8RV%#1G9=[;GBJVR6S,:9_DG9"/7R_?H2/#;)_2RZ M_:>Z?'<$FXMXLO<1\CLD8?^]+IIGS),OZ;O+(DW^>)=](]LK-3__3""T[//I^>J8N/IY]>=>WN&6%P^NG\]*\?0W41A=[Y MA?[/WZ)/%^?>:>P%ZOS_>/%?3W\_']J@?\YF&IGR99G,)N4O@QO=6-T^FT_O8_3[1J83[K M@8^;S_'NS+[9)4SMLI)%"SN4W_L)E2N$6JJ6.<35-OME(!S'7S:6SL@WF1?\TFZ<2[_'ZO@3"R/ZT#8E4YWM+6 MXQW_:YF5-J':V1#.AG"[WY<-(08++6$ZUW"2V39_7C*;>,E-KN?S[SX:K_>J M@;RL)&>DD[P22)^Q""LL ),Q!G[$F_)Z/F+LKB3O+JG^>YJ:/]1LHCHKNT\5 M'O*1!/00!/P1J/!'P4Q4MN?&(L11A *F]>%(*4+TAR83+)9AT!,S]:8M:V:R MG0;>/C/UK2T/5Z;9[,%WEZ9]B3?NM+%U=60W69.WK$EB%"O$(DXP#)2D >1- M@U/B!YNL:6N*^&:5G^@5W)]D(R-"^^R#.+PRLI-L9(3 <;;:/AX#T1[(]9P2NLFYM-,Y-%9Q&Y4REC** M%0WB( I"XZ6I=50D J">PY0_)D*W8DK1:R7"P;'DH644!K8;;VG:\7;2!LHR M790V-CC-DLML:E,(O/_U'P)!],'[>5FFOWAEOBS&3S4' QZ<&&5C[.OZ6R1%]^/V.,K>,=O! &*8Q!0(CCV11!% M31@E]&,>BJ>9KUG1K(?PR>.M1B#L,Q'^[;AZC\E2.6B^ZR0-!*$B+&1$!HS+ M6(48RCI])\(1C[<(7S[.=_WE#H 1!O@H^>YXK,HJQ#)>%H4FJ=J'=(Q:ZU,< M+&&;@.?+4%%,0H(DCK%/N 1-Q(4JGVQ42=SD8+OJIXWK3ME5WW-"'B(O$G9Y M.SSN+-"CY67<\K*(%<(QHX(#021B$?*#Q@3% FZD\.W,RWVF]''V(O&:M\/+ M!V>LKIR]\^1[#Y[>-\VMK#WBI75D 16D1 5**1%'@C;<&L6<;+0:?]AA]+E: MUY=)^T,CT6OFW]MA3&? '@@3"M"IB>(K&1"@0$ @H0 )UH15,%3^1L6$79BP M?YCS6K":M8IA,OK9)GJFR(W)JXG9P(IQ-O,C@$H&UR%4>A M@(*'H>0,^#ZBBC8GS&+?9QM5CQY0BNO=^&N[\B\B;J%I%-"GW^H %&1G[!XO M8Z.6L1'G6$64QS)2 JN0FH)F]:ENBN,M8C[;,W;_(ASQ$8*]=@!Y^XQ]:*F- MG[:MC?1<7M]#C=Z!M_NIX8"TS=4CR)%00!(9PH#C@,B@::X.&(O)/;7/3%W; MS_76^-]_*\UYG];YM=J=O<:#8<]QJ:=H89CM?IQI[;@9 M8*=P$"7X8Q]16* M A0P%39'^"(L8[EQYN!9W-R;.QNQ$>[5+G^;W#S,&HG/GK#]^'AE]&SV-2W? M5F7T'R"A(9UK. HCSY%&?_40X7#M!*7?: 2%K8>J;04MM!;?K;LO_=F=YK]H7!AQ];V X+\,#9]SE4D /11L/*I M"T(WTCZ?Q87])9N0$>KU-?(!R]+J.+$]36Q#92X+]&&.9K@MF1/B M.(042X$CQD $01['?N,01]#>36Y[/U/W)ZI' +U+J M\>TP]<&9O0V-5:ZS4E.%L7^-R:NMW\J3=N"F[U/,C$#;VP>2*$ $1%2&*@I9 M $+5= 0((<2;EF^'@\_UVIY>5>%NJP_M6T3_.RWR25)>&ZBV)5M^"JWF0D0WV&F@XE6C1@@6>C1?,D MFYA=]2Z7939+R[+; 6O5),NFC225L^2^5N9.T44$=VIO!# ,(RRI;Z2-4 HU MLM$XJ<(G_5%^O1=I^2E=G%Z9C:J_F>PU^V,DH--RG>EZ%!S])$-WW%$!9X%F M92($#I"/8"0:95<%(6)^SPR]NTC>IZ)[*'5T!BR1/R^+\75B#E=HF=N:G,_U M%[]I-NPXD#",?.93B,/ )]P$?42C'9-(;A'G45^3;&J.1<5Y8=3E\W2\+)RY MZ/A 'K<0Z"_-H6;7C,D(HDCZA1$60"PH!BGC0'!?2 MMN9&IY'^6+4WHP!T?VE7/[CB0% "*D)B'/ 1" M8H4);/*$*65T@[T?.#^TCSCI5L?^V0B*ESP6N)-"_KJGCURVL0."!X"@Z\(B M(><420HYH\S4I%5XU5%,D8V:>,\"@O[+!$ RDKA7(7\<0'"\1Q"OLEDR&V?N M"&(?8#LYKJ1^3C/[SY-)D=P'0OUJ.[PG6=O/G)5-9GU%LDW M[S9;7%]KQ=CHO_,J=FJ. .;C+%FD$_NU5VA+KLC&YG,EWVK3[AA=YD_:TD2T MS.MC%?'(YX'/0RRDCS!KG&HQ)2AZ*'A]ED[-ZE_D%\FWW]L-,L[RZZ1(_42; MV$%^8\J<)F80^Y2.?(2X2[ET=H[C;L/=M'/ *! \QM!'(-8*+_"U/AN+1C2' M-'PPY[('[NY->.,1Q7UV5SL [CXX4]6J@5J(SYOZAF\CCDQ9*UT!":,(LDA"HI0/!%>K:O,X"#9K:3P01XZ;C7OAA!(THK)7 ML_>YU/+&X\N#0IRA:@0.4C8A1704=AI3VV,UB$!$$8Z5@(W"+F.X<;KJ69#2 M?VJ*5CPDP#Y$33^XVOMMO12."7B0 M-UB7O[/\WRI_/BVS62NSI8C\(.!!'$D?$LD!I8W,]F.?;^3"/)-!]R"SY4A0 M%RL_: L\>$C\CKQDX5VF7[+9S 013-L92XD'' )\DKE%*WU#C*(0!8A%$$' M2 A9G>0=Q# D&YZY^YE;+8*D*+[K^?XCF2[O)*^A._.>1#O< M-JYE 6,!9L"G% :$P0#!QG!7 80;!=YV13MML?>B.J 1EWVBW>[4,,Q>MH/" MSD&=?G:PZ&#Q<5BDH#TZY <$$Z6XC'S(PYA&?G-T2&N&JC-I7BZ+=-6*P:"NE\TJFM&T M\-R*&HSE\=S4/A3/GMGV;E3=T];AV^P9,YP.?^0)^YV?T?!#P8+ M"4J_T0AT6^IZ7K>EMJB0-CVI37+#=#FI3EXDX['>UD5IJ@N8BJ\O)!L':>*\ M(8>TH&U)0$X(A@0)$2GJAS "OD*-+0*XVJP-FL^,T#@M/B?%HOZ@VIY=].#13!BI",<(Q9 1A$:LF,$49 MX1N]'_O!@1Y;)-->6R2_KC/A+PLC35?7[;^=X4RS6?KNNC+9(0(_K=&.+TL.,Q9T-LO]>%\TS MYLF7]-UED29_O$NN](A^3::WR?=2O^DOUT4]F<1R7^R->R&H^WC@*3)XB9'=XQ++SD[]TPLO.#W[ M?'JF+CZ>?GK5M;MGA)].+Z)S[^)4C_'3^>E?/X;J(@J]^.,G]2GXJ/[JG5_H M"W^+/EV<#VWD/R]GR5(;'NGDEWO0H&8@&E"MG$)!"(M5((CR V48R*13**JB MNPRT/5;N8TKPO5<+WT_+&WW/^&$5^(Y8-6TT3"-E;7I9WVIY8N=_H>\]3Z>I ME6OOD##5QR2$C LF".5^TZ\CCA4,Y;LVU@ X1!$B>LWT,A$4!U+(^E@4]06E ME5#.9DLMKA<__!XMTU,MG^<&GXME>O*_0_VQR.96W= RH.D\V4CF>C7N,+W^ MKAY$LM)3?G@@V^\Z:P1D-M-:[^)7W L5&(S(M?;@!7DQSZO-\WX^J2Z>>'EA M!>))4(G/DU^TEF,R4ZLF4Y?+;#HIO<+\MM0_-)D:-_/\-BV\>9K/IZFWR+U) M[MWD1?K>,X*X?HY^RM=TFL_K>S6A+=+Q]2R?YE\JPSV9SZ>F=U6V,(_0-OUD M.4[KQE;%'Z:4@J8QLROUR]>>;HO3\ _ZX?HMFD2\3)OZA=:X"KT0WI=T9HC4 M2'93)[=Z]L(K;>NLQ761+[]ED'B@# 4% 6^93#6&#L R4JH%" M,(%W PJQ)Z! NP+%N::=[$HKKK.%JKPP>JR?M:XUUKMMF,>?VEHKF[RDI,^T MC1^*P!= $"X%5@TO(45@!SPD0A)'?AC* 2"2\!8TZ OP#A^'#R>?,\&>)PO M;S1I?3? T9F>U\[/:R;X7#S99FS/F1HZ^=^[;:N?E%EY>G5G2[]7_SZZK4S" M"*D0*D8IX2**(\%7$*G9H;.M.!:*:0B-(A3X5"),HJ9#.!$^B^_NR\[(VB/; MV)__FBVT-C*^CY'LPAG*^:P!PT0NS:)LK^F\A'S8L)^>M(X:9ZM&T[RT\==: MQA@D-3A9+B_+;))I/$X-B!HCQ$NGV8U^5B."$XVJQC8KZA=[E\E4OZCN;K@H MDEE96Z.>J6M;35^\R-CMV>+[U7!V:3E9BU*]!US M(PDJ63+54D5_G\X7E7_9O/NWF7W7N7FHW6!E&2K1LO6_E/I\\LM[[^/,2VK/ M]<@;:WL^T??JAVN1\SU-M-RYJ;S4U\G7U+M,TYF60N-I4I8:8J/[-8GDW\NZX:5WBS5 MVUX:A*WGV6ZEI9#L9HLM;1?Q)IE8O<1^Z5TE6:&W;]%J#W\N.T^8YY5CR.Q6 M]2J]K,OIHO(?S#35-:,SJH5>)KW%B^RK)?KFEU>U$G6UU!.[RHQCJ-HBJUM\ MU]>-\EPGM]::3"=-82UTL;C6ENJ7)9.:;O^YG%6. M,TNXZS/;G@<,FU6>$OT$K?[D:^,P7*QF6E)-O;-4ZXT+4PFB&=?_;:?9 MYCE#IWJ*Z66Q-*0(B1V W/0$O3I8-SIV;HVQ>CZ%W:72,Y;-%R_Q*'I'L59> MTS_N;I(]3%0QZ+DQZR;)=\^DTJ2EU<77]P%KD]%(_<+<-OT^ZI+;2@VO7_ O MO7":A\HJF_O.&ZSQ<*59O^R^S/Q$(][",S^IG7.:!0IM!NB97]NZ),GXNGGT M/1IW5]O:2;7YS=0!C,J%-A\6Z;UF+:8\9E0&.%2 N)C7\I&A0EX0+LJ3,@P M#R*A+S,?A\B'O'%71US?_!95F-\J$;]:HN$Q1*44K%0+341ENK7@-]):9/\D7II,_/**CHTVV%NG M67*935L,JLW7ZD/ZS51?3BOY4-Y]ZS^7DR\WU7&)1OG2QNM*2!G=:F%UAM'* M*-;*1*ZME4K]J&ZRVDU:6-&C=2TOOYQF7RI_SLC[JF6<\>];V9%-:D>/?7MN M1$3WUUK#TUQI];'*NM8"9%G47@/]+CU2+23+#]YM4FA53J_U."\7^O/79+I< M;=27/)_<9D8;,.M:QV.,S-? G)F15&MWYZYV8[.9-N*7=ED^>&G](SU%C2]E M;2=I!:UAV:K'@>K M#;9EMSOCUP"8WUH]=]U?8EY0UI3[P,X;2-7:P2(W:N;4THO6K_6C1HW/Q(0X MM!TZ-]:IT7OL>^_LI]YHO6?_3&UKA5HS665/5F\TA) ORWK7KS2NY45-ZUWV MN-0:O2:U2E,R9Z+SF26?I6;P2CL89\5X>:/9KYJO&B^,/M&H33<:\B>99IZB M#;1K M "H[^E^YB@9::W5AU*@OFG"R%47H7V@DO])TD:\SZLI JSR"!M:\FU0;PI.U MN_4K-M]KY$V^7%A=WI@3DU3K-,8H-L-L&;;BPAO-4%W30W+KS_7L[2-75;VC]/H0F1+) M.H$1Q0C4ZJ(DG!"-'R%MG&"0CI+" ME+\P55ALJY)M1'4$ @(D!%)(17R.2 ;40U!"#JBFLL8!4'(.0*$4"HCG]52 M/?)#)OGC[O:GWK,127@+YIZI%%8WZ])K[ME%?Z;$[Z0HK6D H!\-P/C8QXWR MK95BKS1C-D%!S1_C9:6"5WZ1=6=9-?%T\B[YJK7C+]H>6BZ,MCJIO."F-4#U M+"TNPVRZK#R2YC4[Y2KTE:.UGREV+!_SB(F9KW%TIJL*L=9FVG[F/;C MQ"I3C0PWTUS9%XO"ZDC?JY'5 OQ'?.%[2A:Z&P2\/S \G'PR^?Q\LM=/USFD M5"COG??S2O#<+8)U;RI:#[%E]+S8,C[9:A1;R,SGB%ST!+?L0_X8\U!;BM/\ MUH)G;6S9Z%SE4&PPNG9@76JSQCA\M- RVNRDEBRSJD3GNA#[V<:$\F6I?UF. M3)'N=+[H?%\[&G_Y]<=5./E@9OR. KYFG>X2W[_"G>>OY=>#.UJ/^=P=P,QH MN=/U#!A0):Y7JSY.I]/ZV_\\ 2?VLY[8N/E\S[I<9#=:]GU*;[VS_";9.&R@ M[J#X&--#,F\3']M_MC0 DY6![16 MQ]4@.WGX_%;U#L)_^M#\Z.YW\)&OP&ZWO8&7]?_$9[]LH/4)Q8^"F]C^I"5_ MR2II&P)ZIYG=(YXOKHLT]?YFXHZE%YE@]G&>ASJP;3W/OCVUJ4?(LD\>CGZB MSTL_*[%;X92]D8KQAWN-*_S5F/\'%F6P1^N/EGHP6 ]Z'*GH< 3BX,51SXO" MR]%4DOVT\I.XBHBN(N(/1W^?"/YVZ\1*J#B7B D4,<$QBS"J8_$**T$VBP^D MBRIR]M>\?* YV]][*2O 1PCLKZOCVR]]."@('%(Y$P=_#OX>A[]./5@>2XH$ M9\ G&& _#@. FU0D "+_1^%/] 5_$(P([[,KI<,_AW\._QS^:?QCLFV*$H12 M@A@)R@F-"01!*"K\\V.%*-Q!_>NI@9\<\3UV]7;XY_#/X=^1XI]H\8^'%(4$ MJPA&$ @@0PD:\U>KA7"C'\ 6^E\_^(?!2/!>VR(>&/X--*"Y\SQ_OYO%NIZY MVLEI?=U>YO=0SD#X6@#2'E*F4(HH4(R&/HUC*26JSS,K2 #8X.MF]56U^)^6 MYHS/Z97-#"]/V[6W>=C;N+VJ;=M-]1$CP&7_K/^CN_?:&LP!*"J.*05J"U[' MH:*!#WT?0:&(D)2#.K,UA!S*C6;BSV7*#6?,*4E; M?5IB0H,@1@B$RI3UE#&I)66(L:_4'B3E__3(E)(#QY2.*0^!*5G+E+% ,?<9 MC<*(4TD$YC&MPQ)AI!7:/4C*/IE2@#U8KD-CRJ-)1@DWCTFF-_-I_CVU56+' M?WC5&<9G,O93&4^]+N-0>%ZT/ ]B0:0**2 B\K6NB433FC+BDH4;'7OOY?GZ M".\&XZM5+<(]&Z],D+TYK7Z )@8KJ@_9+>]8_1%6EZ!-NJ(JB)76K6F HECK MWDKPVNLJ]Z;3"[ '?[1C=LU\8M1<0B\=32!U_N+_KX0VFR3#OX:X?B=CCST( MAI+Y(8!1C#CPFR/] 0LVZ[G?*3^^=8[SLIPT]W0A":T0"3R*2. ]ZM75-%"" M=3YEAU8.K=;1JI/J1A!@&IH$#$F(0DP!D4VC8U] MG%28UNTNN\D_O/0"O>I M/0V58!U:.;1R:+6.5J+-W G"0"%%M!T8(..[Y'%JT$"SQOR>4/4(@C&,**1XC$32 IMH@4A:L[1APILI"_> M19":%%[&F]3G\=S!JBY.0W$&9>&X3C>$Q)CY!V =USH@B(/:C9\GXOKT: M+J?1<;SC^%TXOI. 26,$%4*"BTCR$ ,>!X96W[]G !Q.SLI?; ?' MU?5)TTAWHW%N\\I=6GOVT)_TB2ZI3]V.=UFXZ+Z* EZ1UDU&-?5YR7Q>Y-\T M72S2Z?=5!^1]L8OH)%4*/_(Q#F$0( 9 @#$-FC-\6*B-I$JEQ]OTECY/QTL] MC"PMHV^F]W0ZB8O\QC2O7B[L!IU>W>4N9?N=[GA @*X8BSUE+F_PE:<7;JK_ MN,-?/[S"JS,E5ZM#)G93]7"JGM:V"Z&^;AK6I:9AG69/O&[CR$ M]GEWV\G\\*-&=B0O2WR2M?69(AC)&.M+$410 HBA:1B$0\0QM'&6?$]$M^3 MN8C;$]^FN_>EB*_,OKT6Z6UB_8_33P_PC@U-WZ9%:EHM6ZKPKC195&V<6]HP M*]CT;4YK*NEV9;9]G[.BJ0ISFR^G$^\Z^9IZEVDZTVO8TN'[S:G?Z6"_UD[^ M8>*[6XSW5HW'AE[UV#X7^4S_.4[-&=X5?O^/DBGVONXE#\\O[$,RW=-3O-)M7SLED]A_/?JC_T0+UZC-6% M]-O< *,%T7$^3PU K)Y8_40/*IM93*E0XMVE'="\&E!9+Y89^ZP=>VFQ^4N> MZ\72?Y1I\34;I^7[S1'J=V>EIT?H&02J@,<4IC+W)S,-+5,#4)EYT&7Z)9O- MK-IXM="@%6I*-?GW'J05*%N0STPCN^QF===MIM]@N]&7Z9TGCNR7!@DUN2>& MW,U&Z2]OLH6F_&JT9K^26?V]F:@9;UF30F? J]$T(L*[O<[&UQIO)WIE%A6, M)I[1-@I#B)E^K*F\-;.K7[_ESZ4!''N>.C$ONUK1K7[CHB83,\LBG=H?3+)R M/,W+I1:/[U^&*>'N3!FGE\4R*;Z;Y6$U8VJ.:TC($$%-H>P=0#43_375]%9: MXFX(1<^_7%Z6Z;^6%5+5]W?HJM#?99J>IFE9&FK4U%FDX_S+3 _(OC?1U^NE MG&;)93:U*E6]&UH"7B93O?"&Y--TL5(TK'U?W95?ZN6R3*RWK$CM9EQ^UVI( MN=!O-4.V/VO$Q_H(--MI".B^KXZK=G;9.'?L2^W3/$TU-S7*&*I<$:#6TO)F MNF67'+025^H-K5CSBV6I36+REIHU#1M6FIU5$2J"3*S2J#J6%)>>\;]I&=:9*7YE=4YJMF_]RP*3[]W4?C^S1;O(!QY]49[-:() M@G[YU;M(BB^I6=HN3HY.:M8RE[*)76F]#GJ%9HEEQ461S,K,SN8FU8QOF#99 M>,;FM+L\UK^W4EP_QZ@UEO/U\,T89^GM:G'?>[]I'B@JEG_T!=J@L'J6 8JL M;"'$K+U>8B_3&]I"A14>E;)5_:U7,],ZN-D:;91HP5QMA4&G?+G0VVLVS(S0 MOJ.H!E&!V+T0\1!RI=L!U[)L5N/Q5:UV08]N.:UR RHFJU5"FJP5>$ M;'GH77[USJQ+APWO_FZ-+:_6C;6*#_Y$T7O1V!C5)?V@^CO&W^/FNY$9X[R: M[O3[VN)L![C5"/0@U\U="T3WV1Y>:W9H$*K]':GAH$G-U%TR&YF%G*8K9;W9 MX']IK#1RKKU?DY81)8DM'&(0KX,P%N0NS?+/\Z+>CD1K"\7$ IF5=.8-FI87 M>6'\:/;K6K>96[7ZO7>NI_4IUR1)5APY.FGQK\*9-;&S$D7Z]>8WC5R[ZO)5 M5V1:T]L^85F6-9&LB\#EO-H,.ZAL_145<;0C?[^#45>),.^9\O(55?./-8:^ M1/,@M3T MW6^:,L[SJ\6MYKI:&^[RF6)O0][:3+,+_V^SFIJ&I_:["H?'6J@; M(3E>%D7-6)Y6)RL/9J%A\4LE3*V4,:*B47@MR]G\T"W3/&LAYDK=$G[?W>VOV: HV&\LN&QFZY_$&- M_2HSSB+ONU:IR]'3ZOCZSY_2[^63^OK']>4KKZT#0X.BE:K&Z9%9FBG219&W M$L&LYGSM@IYE,IT^L1W5*+M"O!G3NOS5JV7OL*R;?DVFRV2E;K1HN2:=C1=H ML85H>B&=_V78'6MVCQ.M#/]#+U'J_4TC_;+BE%^]<"5PO+C0Y'B;%W_\K_\0 M"*(/P;4A[K*1/YU?GMWEM?N??M=PUO)\DEUE:^KT.M]VY-&5>>17^\B;SB.' MQ#8;?)$; .L0O*'_-9;0YD^I!_M5Z_5Z%;198[[02S)^8$7>>]$Z3W9UX&HM MU@T6S5S&;C!SO\/-5M'ZKA]^H]7]B1E9O1OK2L=R;M]2+JUR8]FG7MU*EYKH M'?INUZ3S8*O1:BXPG_7ZK3U/B]'IFO>S4=37>7F2IY4.=IEJ0#%:L;4-5J1C MA=/#IOZ!,'7C77O*B+$TLPF!ALYLX9EF:Y4!W/KF/L[*1;%L;#RM=8^G MF@+MWFO:[SQ9O@/$LLGZ-5KMU9=E5NF\=EO*%9V],6I<6GQXPB'[.S4__TP@M. MSSZ?GJF+CZ>?MN>0EQGAI].+Z-R[.-5C_'1^^M>/H;J(0B_^^$E]"CZJOWKG M%_K"WZ)/%^=:7_UY%5/XY;[=N4M"3X>'M@A$;!5EDCY3* Q%X L@")<"J^8Q M2!%HLP">@T8]$/0TS_]8)0XDXVNO\D;K^1B?VMA ZK1"%FU$7UOUS.JXM#1=X5'MY/(6W^>5ZZ'%Z*P%J/>5/_(F^5X[0!KWAY%G MF=4QU]P@5N(95*JD7O6Z.WB5E8_H!=NHQY5:;PV)[?6'QW7JUN6XNSI;;B_Z M[LL_&YH C&UD-;NQ3EWSWY$U,[O>E+7 I57X:O&HQ8Z5EM8*LS'7VCFGO^@X M06J7DUW$2O5*)QMZR6\SX][VU]JGDDY&:\^J597:]"L:)T(]HM4F MC6I_GAF5T7"^IXOVE:-*L]DZD&%U<_YA&^^:5>56EM.FP%T7L#^67/4:Y'%/ MOIC])[&06Q(9A2%1L=+@JOR(TS $/N)"T9"(V/>-[$U^A/3KQ$36FQMJ7;3A M]]YNH?PS37-:R%7I*94;Y'<--8$V!W/]H$=#^(+')N6!*"PDB[#P X$:421P M@+HA?*D$83X-%*!,4E,L#S4]5J) Q(^&\)]\ST8(OYZ5MBU7\+ZI%MY)@WA" M[FXSB.?, 6TIMCN$]!)\TI4IF*K M6^I?&9?[=&KN,S_0P+HHLLNEOD6_NB&!K&Q#>I,*QFR,Y$K+9)NJI(D^GYH_ M]=!N,ALU;\;8"8K;8=9,H4'X2SI+"ZTM6!F@S9)I%6&^ M >O%3[Z9,%H^G58JE]V@SAQ:0;(6I]5&X"HJ]L7$-V?6)S'UDJ5^6Y75-JK< M(VM93#4=O/?.K[/YO E'ZJ%.IM9Z:Z*IYLYFSN;>Y?1*"RUK])F,M*^5C6?C M#\4J"#LQZ]PHB.]W" J\'MNLA&S#&R;RD>L!ZV6^ M,72@":K=J]^S=W%F?CBSNUKQV)W[[ ];$KW6RV&9=I[:67HFV+;R7S5N,J-A M5BJ)45@G9E]7CF8;PDIF1K&XTAK36MS3JC^-/]]3I::F;]#4ADIM@-OZBE:!^VJDE5/^/HXV&II>4CT5J]L;A<_&B^OW6^;6=S0\ MWWCH.U@QZN"('E(7F%(S[X9C'@"G]UYL @1WIFKU]7JODGD5)/WN_7RRVKCZ MAR>_C+1:K_?6(&:;=EU%RSM1"_N\&VW!9/-IVD!513!9%3^H-5'[V)&]?3X? M>>-IOIRT*&;6N+<&8ZPUI)G:M5P2>M/3:KI#W MLP;A%3G4(%F%%?043P([E?-Z*B>_U)M<&YUW-W%=DS=KI']18Z-9HE'ES/W7 MTN1F+JJXL1F>OC!M/EMG;OV@M9=[D]QJ]&:K]=W+Q9I>?S_3F*>/S$16O&C" M1JN-J6V'#@J;8)@-:3_$AHW@JE-8C*$\7F6K6N:JEUDK">-T!^?H"P-TN"P: MPH/X40:Y TEH8M9%K/AIV:F'MWGMKKM@@,AO$K>BP&IS%T0?( M=^6!2JKI&):KC.JI@1J#_Y5/P#SXYY/S\\\G=5A5_[FNL+4I$)=IN6A]5%9, MUWBX]CSK)7A@;G7Z]J6>C<7O[U6"N+;&3?K@E^74NGSLN#O#M6#1ZKAKJ["" MN')+27F_E'SDZ7?((S,BH<;2*NMQ]= M: 6#3>+IXM?*D5CET]1)9I.[=&;I._$FRV(%5E]L'F#MQ5Y=)G?S:T%V=G*QYKDBU0ESS:V5S MO%OD[U9VA/6@U)1,6_-"=P[O@XK?6H!L,IEK=PD M=GTJ\=/-R7[O_6ZXH HLZ2'HE6FTVT:0:,Y-_C".DMJOU+Y.R_WTJR&=*XV, M>D$J;DG6A/H*2SH)F 8QB\RH<*,FIK("6'-.H9MT,FJ3,/Z8Y;=:MTF*/XR+ M_NOJ4,"BL/'N.E$U'2^D_KTAO[OPF1_Z1T\_6IQK9FSV>SB MJ]70K'YR[TS6E)2R-:?KT5<+7A_;^__9>]/F-G(L7?BO9#BZ8ZHB:!?VQ?W> MB0"00%]/N*1J2ST3_:F#%E,6;U.DAHMM]:]_@5R8*5(KE:22)&9QB60N6,YY MSH*S-)]__MX? MCG(2S*.8QX5YGS_XY[R."LP# SUI?1Z,FN@3B#*J6?-*@+&C[G8^9P. M"H)=GL%,+CRYY"Z1>S6!=:MQN9^71:Q;[BZJ<,(_XY79KW]Z./T5 BDS0NKZ M8RE(14HLML!I:BVUCMME_3&)EM6AA].O\X]?,F]Z#ZI8\-MRY.7 5U):/Q5' M$7:PM:UA\L-ZA:BVMN9#4K+4QD^H#N7O\.-K$M7O M,O+@S1F9UDTI!&!:>VX& %A#3*H]\Y:$DTH%Z:L86?R-M$ M%']8[SUU4(Q, M>5W(&FE)D1;2 L21D\ZPJ@L*![3<)@]9*77=ORPB/,=!J0HU)D?_547P5/Q%ET+:(0QH/'P QJ?%=*P M45!*.ISUOWV;9M_*6BDE3)P'K?S1B!2="=F[A\NP%^\@\L]_J2Y:_0T^\A/8 M[+;XLDU>]J9%]-^J]2K?9>O5-5P1+YV:N%]_.,\5[-\+!=L&!?LX:Z8^>UM+ MO"MG F]^)GG8]+*3Q7YL^]GPYU.;?I1,C=]@]]?7HM$K9?T5NR>6.Y4RW@P> M7K HD7JZ1CUKY1B/4[AT@T".%4$B#;PY#3R" T?36O[OXSP,Y"QDULUVQ S/ M:5:E?_ZUX5-3/X>S?^;Q/=/;?_[] M[)$S)KP\8\*/MQI I$?X>E7T[?8A? ."CTU3(]A%L&N G:Q;/0A&*&;& $LE M@Y #0:T'.P2MP= (L1VP$[L'.PA[%.VZ170$NPAV$>S>%.PXK&. 4D4QU0H) M;@B52BAD514#Y&]@6]/L_K%;L$-8]&BKO2([2O 1["+81;!K@!UN!#Q"!P5/ M.5(,60V1,)27,3E 8J&WIMGM&NR@Z&'19M.\CA+\HZWVWNK,< OSM+];]80[ M%^TR#&#'+$S1DH691JG%#B$J.7+>(A,.!..,4J-QBO$;>J+*5_XS;-;O>5!_ M"ZPL4$_(V/!V/_2,HV!&#AN90*G$B*8":J8%$803&9A1P%0;*-?ZQ._04[(5 M9N2@!U%DQLB,G6%&64>1"Y,*K:7S0M!ASX$$IZ*TY)U(T[4.M3NTY+?"C)#R M'F%MGM5$;HS<^!IN%+#F1FJ99M8J!E-G&-2IU^(*;M0">GGYAJ;F=K@1RQX/ MU>/WGQN/)@ D[X?T2G9M=0VZPL>XD9L%C0>UE&/)-2"$&Y*F0<75"+E46OJ& M]F9(R_VG&HWR;?R2IQ?-6N-GZNU.L!-W>6>E[B%[Q(^;OTDCL@E91@E R!IM M %4&D/RP/W400,74&YJP6^5O0GJ,[<1#'/D[\O>.^9O5P3Q>#7=*$,XQPD@R M1[DL6]W8%&OGWM JWBI_>_3J"4PB@T<&/T &%S6#(Z4\6\LTQ4X:8V3J.;YD M<" QAV]H:&^5P07M(7'8"OJ&I[BBLP;W^:11G&^3+;J3DH-O?B:#R2(47WA- M3LX>AJP\=QGV/'1%PKIV&I00:I92EB*+G=8IU,+;*1@RKCA36SIJ*_P0;42D M,-"#[296/$4$W8Q,.0)7?X2P"&%+",.H<4 )M&$>Q(!"2@C@*#(!PG!*/;@9 MNTU72QL0AE@/PU8UK@AA$<(BA'4=PF@=\.0 @U[YLHZ$6 OM=3%0]8XT#H(M MI895E0E?[_25O"=PFP%,$<(BA$4(ZSR$-6(VA>2II(Q!*+PR1@6R");5]*6D MQ&S37];*N17N8;%>;/_H("QWCOV6U]ZLOF_EV2NMB3O8'BS2K!LEV5GG_>R6*'RV,J' MQ1)R1TT#5=.>9+5?SS%&$:NJZV,MNWO).)O'5/S6XU7VW R%@-5V*%!&<\Z@ M5^9%BCG1W%7I2LA(1%9MBHK,OBRI["2;FZ('XHN;ASW7VI2@1P \WCSZ3F%7 MEQQH$:D.'*E$(P5$.Z =H'>_)4 ^R M(R[F=F@E/Y:^GH;GXWA3*_T_M,&0%$"L$79>4> V-:F#A*:44$R)9&LUR^YS M1R[=D%O3'7 /\#;]U)U5 @Y UA\%"T%(ZK)_ DJH!3"A/1[1J>&I\BS$F$&6 M4K<6B_-2%FI'J-$>IVV*M"X=UG3:8U\U$!Z.OT^&X9RA=J]_[<^RT!+=$UBS M\_S7T(=U_,WOZU4V6(RJ[N[]=>= WG8]=%GU6L0@^7&5C?,.JSDSA#:E=UN_ M5UW3%V/_?=57_4-RGW0,G4NO^]-AWB4^=#W-FYY.L[)W_:SN'5\<("RG%-J> M#KX7?5$OESV29U?#F_R^#TE8DHNK_OA;E@R+T4YNLG&8;GY&,9K,PM]?JT,9 M_Y#[NM$OSS+ZX2CLD?.-YCQFB]%\5G>XGP^OPZN*QO=9&/'7;/XC*]=P]8W- MCJ_A;>&::MKU1<7R?$C2Q]K=WM,T_O6=;M?:,+SX*7?[73=Z]VZYC3*$S+@0!#*9(B0UP8@@EZ9KA6+: (_'0W&>#Q[K^>/[!1ZT3B-, MF5):4PVATL!R9 $-I>P(ET0!0]:L7?7W$Y'/L1!4CR&J0?2KC+ MCRX?1-'L]*;')M+4J\+-W[*QUU]'7H'SKTUNL[Z_:YIX MI7CVX?%HJ]]66IWOO+/[O29,_D\_9Y\93QG'%F.E4DV)T4Y(K!$7B@%@F,@; M*?U1+/B2;Q;!]#M&,V>E-;HB,OWW.O-TS>S1<#1!J@4=OKX1H MB#'#'D>J<#64,M<(5T,$8&H\NEN64HB0=;9R*7.'E2[PPE-!-E#S%[\'KD:[ M%8-?I[;F)J]0WB;S@Z\;-GI96![9O3W\'S//Q/W+ S+VF#+C=?9 M/(#$I"*=_)X0MN8Q8!B,N?Y%9>G]N!I>7'F;,L30!EB=WDS\/5DOF?6K"+@ M;OVIORI\&'AH'4URL]2_XC*8YA\2EV-+_HH\%,X#P;7'H&GFGS3UV.3G"U&I MCZVK/--!@8F%R3PH[/#WD\OWBUE66*KYF_,7)).O?JW+>+UY"8,Y^";?^Z-% M;CX7%RYM[N#(*_#3C^H.SI>+Z4<]O[T)OIK1[7(EPE%)?Y13\:AXW<6H[PZ'7E2+JVK]%[/^MZQT M]=PSH7OW,>E[DBL98C#)ER=,NA^\*SFMS8:#X"DJ*.7;PB^ MDH*:X6_RZD,_?\OG!E5[*AYZ56GHGQ"V+BS$DJHKZ9IO=GCQTKTT*01[I9W, MKK)L_I=RO-G/FVSL_UM(^TKW#Z3M\6':SU.+KT;= K M^^G!J0%)Y3Z5 ;E^XAXT!@''EOP1R&5X?3,:7@S]LE:<,,T\F&5WP<1OH4?! M>0CKG0>?VD5!L<$W.)E.B_C?:>F5&PQGN5^PL9Y+:BRH+DB@9G3P]_YP5'@/ MY\DR_*JR )-?!N'!GB0J$O&LZX>F_+: RZL+D^NN M_4&!).$!'G2JWVXF'N"KW^YJR!\2-;_'V+VS4'X;"A4E*)>>I@*G+=/5@D=/V3ZP]?B[O&2>93E MV[:V69ZN/:@MB:6 H_;VK-)3U[:L4=1*.,HD-4Q[FY5+Z+R%6A:7Q8:MQTX] MNF5?JNGD/Y[[R<"'MJRQ#^]GV<7'P6(:C)MW_RD_4/&@>KFI"R \>M5@VE"5 M]Q,SGFN?3CG!1F/"+71:0$@T0<292DDU4."&#D^)]48/(T(1 H02$(3B0X6[ M$5NZIH1W53K-[+ M8J[%[D.:MA9'?YX?,_Y>Z/ VG!0<>?C)H6[TV?#G4]M\E(S-WR"!9K/PS3?+ MISJ:/)K3N_Y"3R2S-\^A.;C@\S>/Q2N,.=IH2DFXY YA;CG$RE(C+2GM""6X M(VM]>^X:<\&LV6;A/MB33!YTE=%.X^[YT4/*R3/+T:^!7VV*XS8 MJ+&$J9"0<$802!DBT))E-1H(E$*KC%@M](XD.H:MYHD]L:>=%>P'(+\CXWG& M:_3 E$!BQR5UP"JL(130ZE("IIK"M;.L9S)>.P(0]2 ^"L9KVV0'G96014'_ M5]GKVRG%N%]J^),5^/9?3V>0-DX.*?3V/C2, ,81T!24B0J*:&C6JLCN1"W M/;3CLHJ=T]^C)R!BU%%C%*ZC@ERJ+20."F I XY!#'&A2:50*;E6)G8G&A1K M.:5^#S%J1V5?[TU$J&Y)^;TRQ^G7]3YI].3YX?4 M[&:$)Z?G]BPY/_5C/#D[_?PI5>W)^EKQ/?EF& M__]ZW^ZLDE +*06*X MJT(!S55++ORR)4%?N1.V6R45S"?+#(7^+ :4Q8"R&% 6XXQB0-G;;_2A5NB- M 6371?4._5%F[FZU?W1/L%A,=0]P+W)ZYSA=-#*'4Z4%M)1(2H@D M1@%C%)*:8^K2%-.U,E[ :RN!PE"=3B$B!0U'G2DWNK(2 M ,9K4>VY7#B]_/LLRWN_GI8BX=/8E@+!3:9W]8N'*LJ_SI3X=S:=#+S-&KA- M((C^<@C:1;0C(A;L&@MD;4<8#60:JD51YS"W0@ :PL,X$X1ALUYKNW4L:,?8 MH*C'V7KYW#W$@RZW [^OE.IR>W_OSQ?39[4#YQRDPJ1.6$LHA%[L:%W%VP N M82/>!CJ48L!#J(VV.@6((5;&VQ $G=S+>)MRI89%AXD5K^N=!A*K99OZ^1WW M%&&/X3<=#+\A3X;?B TC8IX7M7.4!^/'&BCQ#+/L>!Q9>27$05'C?8?MO?Q(='E%F*@?YDI).+]TP:*+_ M"&4RM]=ID.!6TR*ZF?5P0)45$$#@&#L1ENS'Z_8WC"@F*5&8"I "2C @5>\L MS@E;ZYWU+/9+%UE@N/,?DZWQG.CYL1Z,X7@,TMWS''QM%84VEZ KS"AK9N3( M"SP:NM91A0D1!,-*%C+N3>=7,6,(S=XB.R(:1>">B<#5%+XC$H$0P)KM+.$I M95(HXICAD$I3E0NRFG/^*AGH)HOM*9Z\YZ5V%(+[)01Q%(+WL".NV1$A""G4 M@%$L(&0V-,$HV1%QIM2KV''X?7M"D/<@:O,P(PK!K=B,#4_P@ $%H@4C;&2X4S>JV UW-Y3X4UWCH#$MB#; O(+7 M]7 \O%YFOW[V:)<_OJ&]YLMKO&*EY[CJG7SBTWP-(4I,(*96"IMJ=* M*;F6-?%?L!Z$+<)3QVEW&/1'@)!?0S=^1;SHK=E%OHH'K,FT?!E00T9 MA!8"BX!ABBL%3,F=TA'^,N[\^[CJT)<-[,\+?ZG*TV6WQJH0]2B)FL0^:1)_ MK';"O5S,%],LZA91MW@>>L%&GA;7BCD-$'<*4O]K"BFIT$MK\T1&YD.QD^WA M$\,]*MMT_7644(]+E;A83$/G[>1F,JWZ8C\69OC+R62>)7RUUMLQ:1RPX3(T' M.U_,=P_UC&U6^MT/183625_(22.PM YS@C72(O7_4]0JUPCCM5KE#X#:R61\ ML6U<$SW 6O5N;$P('=99MI\BLGG:P!87X*T'57P,EW\R/DK-Y?UZ4W/IT?>,).6AB:C"YR14Q=6820=#+)QCH4>PH625T%C<3/_CQ M;=(/(\\&U< 3SR(AI>=[EJ3917;]-9LF&.09*2)9S,(40^&Q_LB+O'$_OVX^ M[8]GPQRLKK/YU63P(?E['J@]OQK.'K^RE_3S%N=A(/Y:#T_7PWE9DS84+!C. M9XT!#?RZAW29,(#\;[_PWGZ?ATWIW]SXC2L*V_X8AK29>1(<;F55I/".:3$( M_Y+A9)!<+O=S5NWG[$/27)D\MRF,Y2IX!B[^U?^6O_$F!R\/2'DC]L$P;\Y> MCWQ13OW.;+\MA@/_MJR7_+@:7ESY11E-?I2/KE[GIWS1GTYO/8K^Z$\'^=S] M LXGT_QEH7;#;'9=M8+_!?[JG^47T;\L8'88E%_LJ1]B\45_."ZS!GK)+^C7 MJ@_*R#]G>%FM5'\\2'[!ORY7<3"<^CGGW5+\8GSR%WCB#%?V[@SUSLJL+T>U M>U>>;&>!TD.AB4$6E"3_HJ6U$CX7*Y[38&G3A&>.LQ]A5\:#L Y^%Q>C>5WS MSH]P\FT\K*Z?WE/@(DQKW2+R%WLJF4Y^>I$TST:W=U-/-A37?WI27G/>2,QT MRF"9.DTP$9HX),IX6I,*(.CC\GHE3?.NK"Y$-53E2GIN]LS\B."F2\'-GDC" M_+ NMA._,B/_QXKXWC#YQ^_6CK9"U%W@*-!, &"8J4>(T6TXT@A" MKX$'_S$+JY K4OV"43W>%D"TK$;W85TO66MAT"D9>;^>\I__7S\GJYDG$RU@ MRJR2RCKA0$JA1EPHAHQR/*_2W7^._&]'>[FKJ] /R6;)P)_&W_T:3J:WZ7!V M,9J$VJ*/9OVF "$EH"2 ($N52ZD$5=:O$ XWLGZUX-(IR1U/D692$9OJJLH^ ML(06G)3W)U#S%[\'KB4-;S3_NO? @?G0MGGS/VEHLYW)O)Y$[GYOD_G0'B&=L MRW,>\XP9/1\?EA9"A0>H'3Q8+F*.=5XOFU7:2I'('?2:C3.VU\>W1\G7.VML MP#?,K$:[;&SPO)?%-.XC2N-^JJAYI('#IX&E,Z6D W',9R9?^C^6%L6;!UMT M\YQCK_/XD<0\([)NJBJ]>NL4X# 56"F>8J-+A=>KOLH\;(=X2OF](I23;'YZ M^26;9=/OV6J5V_9.*E!/MGH"V[T\C4ZAR[Z7K8NPLF-8H9 T? H>01 $"& @ M2,H T*R"%<#86E#'1K B_D;:@15YV+!R:%%7;C@>SJZR0?)M,AD\H*4\/R]S M"VIM5Q@2U0$)W! '!,/!J4X 3Z&PI5==843H6N7))4-6B_W7L-:[$?10R!X0 MVXM)Z%!PP3$9F,?,B:2.4;;*RT2C4J]M,T$55*% 9\&)1*=\[:AQ,TYL1S9" M!GN,M-E7HK.J@44JB.M@Z)8:( MT%_#"LM3H2&'98<-9H!3>O@A6_9^Z_3K/^O]WDIG8_]T8_^[2R< M@U]-[X9468*D%@11)SGQECFDSA0A55ASK-!J2-7CIZ8 MTR]_G'Y1YY].3YX?]+&;$9ZTFC?X%.WM)*Z-;1K7%HS9'\/12(T'G\;S_OC;T&-% M'D4[>V:DFV-&6^MIT5#KN#>M>5D&$ .8:D4;T5W4AGA2XA0@1H3>K4J7J88Z M2(W'H[N>?,]:=%J(NVH>CVZ#7T]!(97, M(,.09=(B7 V$<]T,.+226YP*J5-&4D@H3&EY.* 5%*&;Y@9M1K89879^)Y:L MB-::+:ZO^U-_49'U$*3[]^'\MHJ%SQ,&PM5%@_@0D?:M(H?0T#%<,QO^3*[] MNZYF238.O>.WT6KDSKK\T=9EQ@F&)8^9\TXPX^J$ULSZJ#HBW1!=:,0.QU,&ZKBAN&:&C7SH*7.GI8 MR&DV2!=3/\D_\FS-;;891#U 8YWL?1+9-L\(SJMX3:9>%QR7M7$N;HN'X\V2V>E#\?[[QXOYPMV4BQSG;Q?L]UM<542];ZM^*.C1 M=FO]/GEH$XO>O-B!M9Y:WI*C[YXAO])W&H*VYMGGX?=LS;_]=.*RT)H"1(05 M6))4,X;+*&H,H*'.-'RJ3&EKC9&&84& QAKQRJ\JA4R MO\\A&GSI&U=4J)Q(=YXI-GY M6K'#E&6YPW?MZ]>KB8G&]&(5B:P]J_#L9QW6H1?_O1]SMD10/G!1/ ML@A"Q[GS4?X<[=9'^1-)L2.D>+_\.9I0B%"!=Y3EM;BSBZNQG\*WVQBR>)@A MBP+7!S$("T01P X RPS6F$A;5=.%3JZES#YR0/37Z7K(1GG6^<_R]G\^/[QX""T9SY>$^7ONPV@C9$OT(-A)@[,W.QKM%'!U M*?,V0M4^0!6I:P(QR174P@A*N;$:8VW+)D5&66'6*I$\@C4-O;.I^NT9>.$> M/O#8[@A>$;SV&+Q8748)60R0E00@+3A15O%4E:5)@*:"OP"\'BQ6TE6@(CT. M2,2IB%,1I[J)4Z+&*>-U+&<)M@89(*0U$I2!>=89"%4+]J#X&^DJ4B'6D]$> MC% 5H:JC4"4;X?B$8^.ETW2M;>2+[<$. Q7M(=EJI;G.X51' MHRW&$;-=AC+V=I%C/_]FR:3+.BCN+L:GCSZH:C^UB^ M\DG&IK7LQL!1C^Q(0V(Y/>E<,+V,>463X V5X"&N& ME\YJ0BED(O0S=X:DMC+AE6/Z)0R_+;?W+C5]V6JC],CSD>>[PO.X;LF$D2;. M,@NY8IQ;;8%:'G4A35]2WV!WGO7=:?J817,_@L!!@@"EM;E/C/6"WT)BN%90 M&B)<&7TB4O"B(B?;\=WO3M.7Z+ U_4.+O/Z2]:]Z4M>R%@B 7.F9C99DQEBM=Y4I J5+725?[%KD5<2^#V[2\ M([=&;GT5MR)(ZE[WC!%*$":. ,,8-4:7+K(4(Z%>4OYA.S[Q+7(FZ9%6E>/( MF)$Q7\>8N&9,K](B1X&B6"#%K==T8=5[4'KC]B7%#K;EN]ZNBDMDFV?2D3E I@3)BBB1J>,(ZWJ= H'.NECWJ:*BWM4MMF5-')KY-;7<2NO MD_<92XV@P%B<[^YQ=YF M:KFM+=8R1 =]TM,ISN^JT#Y(+L<0-6*ZA$! >N&MM&0JA5;A2IJ[5+ZDKO+N MW,M;Y7M((]^_A<1OCPD>GOCS^?Z)+DV'B0N-OC824H L20%6" *C,#%5K*>5 MR+T^7;/;& !;+6*\*3%%C.BT;G"4&$%KC*#"*0NL8,P;#E)8S3BHRH9Q(TP' M?.I;MA!:K<(942*BQ*&@!&O49O'V!E<$28,$<]JDB%8!+$A ]9)*O;OS[D?M M(N)&Q(W=XT:CDXHPA,E48FVDI98HZBK/A/&*AGS[R&.6[?8, Y==/8@ MXGPR[X]>O778;]U@LO#$^:J&T>5#PQ7KQ+#UI=BH?<%SEZ'U6>\8 DDCFA#+ M5&B@*4::"^F5*N=@96"1%+04E]\"6G'4 ZS5%G5/;??;4O 1QSM$L(I@58,5 MKL^+B0&I8RE0F@ICJ1#8@&5U (M?HJ^]Z"2IC88JN$=0FP%7$;XB?$7XZCY\ MT498&S60."*DU4IS9+"N"AVDFD,IVCCP:L,N%#V&6TU!CE 5H2I"5>>AJA&! M2Y5V*?*$0Y'E$.J4H&5**'1M]1ANPRR$/;!%/U8$JPA6$:RZ"%:R[BT (I MEU8P#9VQ3+.JMU@*!4#;R5]O![X(ZW&QO:.Z"%\1OB)\=1"^*&RT1B0:,^JQ M2QB!L.**+FM>0L?=2SK+/'@*V48H$NDA'C6MXMCPMWG?C[3ZOI5G%^MZLKCV MMUS7V4YC$$$_GR'"Y@G^=79YY^'8P]J\X\8^ M:6(ZF.$RRGS?9 M>)8572RR03*?),L:6,,E32;]G"B3'_U94DUV0W[ZTY,,A>IC?8B)MU(L%XH2 MXXT5)GEYIJ6U8F(MV;AS8>;'_9<:/ELA)2>RSS!B/R6X \6M!JV3&W:T>)+UYVT=:RDP]/ M%BK8?-G]>Y/Y5>;_?YIER;6_[FJ69)X9!\E_+<99H2(@V4L"(;UND^KG89 _ M3VS\J)[GY=E-YM?B>S:Z_9!TG=U)'2-LC=74&$Q JJ2B6&'M#0(MJ>0,*+"6 M1;@)N_^C%;IC']9KP%5T\VKZVPF[DSIR@$K M6$A-ML0:(V@-G3GD4HR0(!< M4ULV8?=VEAV"#^LF5FOK7O'[;/AS;[G]KBIR1Q-YF!WN;N_9Q54V6(RRR>4C M^JE;S!?3K$D)MH"6\Z!.G?O7Z-'DXE_O;IYB:HC=-%]JY[NM:Y M)Z=L-O?4&]#V,E^TI/\$(E\LIE,_B'L >>BO[U]<)9/+G% O_EKC[N;KQP$61G<& $'A"LA5^.0B&XW*7__/.Z\:AL]^6A?5 MYWOV[7QXGM_G8P&_@EF,IL'Z/N2?<_&B^PXG8]'3P6G-]G4 MBTXO[DJ-XX'B+)$0#IP0'@J2/YIR15^RZWY0EJ8!%(,ZOR-&>+L$D(U.(I[: MY3U(=6*L/F007##MS21(L'4&295R61XR2$G-BXJPK)MO2YHZ]=9?L";^X8V) M)RHR? JI3=G9W-LO(:_I\^0B?^+=IAM>=I]>GGD;O[VT)]IC.';4.=3DQPA; M^P];HG;EH)204"6& 9DZ" G%I((MP[%\24WE'<+64MDLW]->_7/99A.1B%P1 MN2)RM8E<4C::JH3H#:]; 4*X$- 16P:E*6XM>U&NTJN0JP7883V(#[MBW:'U M)$, @2,N)LUAW=W(&$T<(9B&/F,&,@MP&5ZE@=8;*U%9 M\V6C2)JV@.,4$PD!5(P:;#"N;%R&10M^IY;X'&Z3>9L16'EH,T JN[KI0?@%<;1C+R'*64M,5/+.,6I M THCZX6ELK",D52&4-$&4_IK.ZK)HN@2CIZB@V1Q"9MR5S&8,BZM 11B9A$U ME5(,&7Y)J\SMLOB>*,61SR.?=X;/&RUQE>.<"X!!2A2'0F'K4*5? T5>4G;W MQ7S>3D!3= COE4/XW'^?]2_GV73+O>3VFD-I+8G]%XPHHHFE""&24H@JM['3 MY$4-:>_A4!5VHN,:-]ME9\G.RN.C$KN'S-N\EKX:.PB(8Y)K3KF2DBR/A)B1 M[)5:=MN\O355F_88;#7-,/)XY/$WY7%1I^4)H832C ME;8T\B$I PZ)U4(-H/6 M"L.IJE*2E53+0KG#Z==Y"7RC 'QU1Z+>C]HKL0;S;#AO= MY)_H>8S@&L&U77!M9+-J:JT"D*3.NI1"X<&VW#=FL$H>Q3LME]D M-YDH(FQ$V(BP[2)L(R,90R-2HAUCREOMFD N1*F^8B/J0_!6$78_^^EVDP7> MN*-2^!RV>#A>](L=:$QWK63]=N:;_U-\77V^9\'+XK?OMCY"2%:6+/_W:EH] MY*;_+7O_U3/+O][GAX0?^Z,?_=N9?]5O5]-R-OV<:6="I51AI"!#VG(CG &I M1EPHIC6TTH9[^G>6X;&Y/58)>,/9YA_OU@(>?CG5I^>).?WRQ^D7=?[I].3Y M+0UV,\*3TW-[EIR?^C&>G)U^_I2J_ ME-2=#7Z];UL?H;U'&S9 <=-"5XM[)L<_))OU&E$7%Q[+)2N6K>-;]D%I9X-IR%[B15-Y.\-XD?5]*?/]Z@Y%5M;4XO MUTGLZ:8U!C"KH01.0@PLPAX2[7+-*2(-ZH)"P-1)#8U7;*3T.@W%R\ "".R+ MFM:LKWSCZCM*]>'V3Q'O'CY%*%[!-VPR@G;9T>1Y+XL=38ZHA4%H!)94/<6. M_%S[6&D@S2YR]UU%!^*8CT\K+6'B%8*IIXWKH"SD>E LM7QPI98Q R CLC[6 MQ-II8C@(&CF6U!)L2:DY :NUO,=Z"-1BKV]&D]LLT]DXNQS.9Z;HG^>-B9/) MN&RFMSV?$.HA @\Z5+I3H-,EKW<$F#T & KKHSW$F:2:I8)IZ2TW#H0 E6F& MD&H98,3?2!L WHT* 4'##"'EHM1:3$_^M-I?SR_/59BY!!8Z>CL M\,%PFEW,D\O%Z'(X&H6 )$\DL_D#+5>/-?VWX$]6\Z[*A /DA,%KUU*B(G4 M,4"0%A2D7@ZQRJ6DC +IJSBQ'?%(>YC'7/M]M.^^3L:+UXK"/>8S!FH^A >AC4;#[C#8"+&ZDQ:4$@"9 M,HTLE)HBMXP=41KRM:(4&[%1.V(+P1Y"L3///EEU)7TD-R%@VA/BY#*95*DD M20BJSI)1'105--!LMHPZRH16"#GE,&%5Z50N!'@]-VXH M-/^=32>#_NPJ;*- $/WEH%GQ4 V]60: 0 M35%K7&<]5+,>%8(YRX6DTC.:\QJCJ&05U,ZQ!]PM18V&\[# 6^Q[3$FKI<$Z MIRQVBA^[*N,.D@-)70J 88=3KKC%3)%4$>AX=6X J7G0X?DX![8D KW.V&JR M?^7V6SF']X?N6QYQK!%N0=0#+L\,"FVSRPDZOY,QBA.$<.:AV@29I@74B4+ M"4CI0^KB\UFHI9.Y'J 'T7CPZ$RWW+NXY?K/AZA1"E SJ<4002,PA%!"+BC5 MHNJPI"@$:[7?3\.:KY>$V+:60$9[;]CY694=VF!5%O+J>,8 MIX(9A[AB52<'Q,E:7-F+N;D=DL'4ME<+<^K9NI:CE M'D%.([!' H9YB@'C4CA(=$H +P-[@) 8?[]:_$IO6#DW]Q=_]^G[//HUG M\^DB9&K-U'CP?[/!-X\+RI/Q]Y<4$(4L=0X):T/?.,ZU_UM7)1Z5L%1"M9YHTIOK:,J+/&<=KIH'>/4Y, M33Q_L@IIJ%39 J.<7V6)F5S[VV[+T/=LE@Q#9;=QODS]T>@VQ/GUDKS^:)84 M53/].BRFLRP$S']=S/Q$9C-_Q2P4,YW,LD$RGR27H\7%O%CK\,0 N'ZNXZ1( MP[BX]==>7/7'W[(D?^F'0B,XS^N>KEUYDU/K+)G?W@1X#6.:#OW[+Z>3ZV0^ M[8]G!4C//-Z/)]=#/_@\\*-ZAB?Z,E)Q[M]95%==C"^*&=8O*@NOE@OR'[,J M&\ _N)?<3+UXF/K5S*_YK[Z_)/-#^$TEVJ_V<':5 M_!%,TCQ0,MQD%]/)AZ2YYB%+Q8]Y2<[#FIS#4.=^GIG_?>;78SFEOG]N4,>2 M*\_8?OFR43'$J^'-+*S\-!LL+OS>3)-L-"S6(G^[-X<]J<["+*LEOK,'2?&W MOV#<"/"\64S]]WZ8^<#]A ,+!)G8W(VKOA^[EZ>+:0XPQ4(.I_/;][/L>S9. MKOT]5[,P)/]8_R0U3T*IQV+/JWJ/^>LJIGTQ)5=E ^\\4VS\N%Z3$OS\!LED M,9^%LA'A%'5E#V;)C^'\*NDG>;E]SR,E87WOCQ8YDVP\C$*]^M.#^A4A4I*, M0-%P]VJ0IHHIHP%.C<% 5L>:H4SO\EAS./Z>S>8-H7%2CEI=A[/B)[JRW"=K MO@QG_[K3EB5=TJV:E4*HOOK)'BUTJ:ZQ1]4U+.2'=6TM\>LZ:I9)W' #7D>4 MS]P^5'OKE20NA9RF!',(M'.NBL#RVXHXVWS[O'+UC[,-Z7%=;V]?S:#B[ M"1+Z>S:Z_9"LZ82=E<9^%2=)7F,U%\C^;[^C7K1=5)"S% \>;IHBHC^KKLBE MHQ]"(_PC1[";B7]@*Y*BE@"Y%"HD_^QJ,O6/SZ:Y:!X$"761>7+[NA0I17K MBR7*/8)D[R7)ZJZ^L2#!=7P,U%8;2D)=)>#_CV*95CT5K>3"[E"0G$S&-8&W MACQ$?%@/K-DKN8'K>@-6"0Z=-$9RD ("-:)EOI( MHB_JK7"OR-N"B+OL#Z<%I.6X_H#Y$T2;EV5%%XS9XPTPGCNKO.'+>A'S.S[C M^_I&K$^\\<8G[W[CKA/>:O6Z6S&\_F(^J;XHW/WY-T77!2D_,&\M M_CN(IQC6L=N]?D&DZ=9VWXSZL]GPQW6?^]*5:;?[ $W9O"1-:S"CZ^EQP..H3[:BB6_^\_3HME;69RP:.W>D?EV"=(.)M)S'P(YBQ,'1AIE M>BA3QD(J4R."DYJE*:A=)88W= M.6;(N:2J\)H_L3AK>-EA18DTMCS>= 7.K#RI//VN#L171_*R X]GE^@2,>T[ MHE1$J0U0JE'E02@DA$LU(I((B[!RO$(I*3E>JZ?R#)1J'H@>/4I1>A!E!(\F MLWXKFO5;+4I[*G=5<"#[&1HL/U0BISN+T-GT[(-*OR[%B:BC:ZFV7HH812CW M_P+I "]S(96A5J_E0N;PW_!RG4SFCX95SM0\'#_EIT\GV5/!4T]*G_7DJ;:E M3QLB1!YV-]<('$<*'+S1#XA9K2P$SA%KE=="'2)5%18+-=H!<+Q(;>TFP\;K.SI9.>0]8@6^?_ MMQ/T&U4!>6IK]T -EK4[5A.#L'5<:,FDXPAJ75;_T)2R%![0H=&]>1]_[0_' MGR>SF;XM-?@OC>SM.^\P7NUQGLW*ZU[FZWU=ZN;S"X+[Y3]H%3P";P3>_05> M >N\--LQ1[$= M=EN 4M8TX1VF8Q MY\ZJ\Q%K]@-K:%V<&#I+< JM0BFP%*4XM;K$&B>;'9608Z8LQ^80^MB!ZE)C<5*84B] MP2Z1%<16ZJZT8JU9_%;4W8@Y6\ <+MM4>]]6N]U^)Z]MU,*NR.G3^&SN=SM\ M=WKIAF//#,/^Z ^/:V'W/&<\6C0[37EJ =0IDI0#K*R4KBJ:+3!"C:+9%$" M#%6.6H,AQT3;JL<&E"D!C[9Y>O(]:]VJ-FTSL7EQZA?O?-B"6?++R.]"-OLU M!&M,_-J'!)R\'\$#%;J?5;'MF76\&VOTY(3WIIZV^( (@N+5!;7%NX=MV+)H M-G^DH';[-:[;?V)'7B8[]ZY8<#C.;U_F=V2%PL^OIEF6_#[)6Q)9+Y\&<=N/ M8-O/AC^?VO0(VCNM_[Q[&HA5XCM7!'SW1! +P4<:R&D @P?KO$<:.!(:B#@0 M:> 1'-BW@&#Y@;YT9:I;@C.Q\"7^&EJ_3KZ-_:]YZ_+A^&)R?5]7I:XNRAJY MO&)9BCRX8@EZR3B;=WT=NF1';#*_!Q=KLW8Q[3'(KM/1-YOOZF'K*R9<'+?^ M\L1Y*T2@+K1I%%3AI(4Z)PP &&E2%@I1J1*$/WS@VCA9>K)H7G7TM%XQKSS- M^MMYNCR/_)2S[O*,ZM$CVLE--NW/\Y>%FVR1!O"R0\LP.TQVJ\18CM>TF./4'1W0/DD3J(:)YW0%BJ((040.6-3R5"%DPYQM N< M%&^+DX_"(P?\H*.:(YQ%..LXG#VM]Y$:S[B03G#+ %(2$\6]%B:1-) IXIP2 M8D=ZWS\ZKOW)^EKQ/?EE&8:^*^VHV=TAHA<8V M"1&'[Y[S&,A2YY"PUC').=?^;UT]1BF7OD?O7ATHWTR0T>+03;X-%87 M%XOKQ2C >5%10".1\/E$?9+08"1/!6:*<$@9N4D MD'4*-,+E,2: 6:212(FDD$E"855BB7*G'PV7?_(]K87+YY"\#8 [O\K*Z/40 MVIYC\BR99I=ABHG?A,1+BO#GY+(1*/]X%XOP("_=\KOG>11A?^QEU/!G_3'W>>F7"(8?X0@%?&]_,G MX_LQ:STP'>\RAO_87Q8#0@]G?C7?TJ.(=WXXGN/4?$J\BE2;GLDO\#[73*3^ MPYG?D07[QQR/#FS[9G$$,0$D(EZKI-^-V-:.,4,W@I]?L"B1>KI&/3%](A)( MA)=(/;N'ER/*RMC_0NW[KM;&?(0]RT>@HFY0^=SOU]/,W\?/Z=#:K0B]-QH_>YF@YG?K72Q=3_^X?_?C+0F>?4[+S_ M\^D,A6[7?6LS_@WU0*LMB6+>0X3R".5["^5/(3D#C1;4,)4N1!-S9ZD35A)% MJNI_G!CP-D@N#A')'P5PN!L ;X4C8]I&1..(QJVA,<*-!DC&2$8HEH9BY;BV M*0IASJEPVE^_5EAY9WKU/XX)C4D/4Q#1.*)Q1..#0^,GW1R,H+JMDQ2:4,>Q MM9@RSE!P;DB#@-.&6/!&<"P.$8Z?X^:@;">H?#!.CAU5P7]1R/%J'/5C(7?YF$45W-YSS3-X[( M7T:*77\Q1:\'9:[E8_W6((JGT,13T5^>M9B[VI.G%G4+FF3(">E?>RB=)]/, M"[]9WNH@I',4XB9$QU[VA]/D>W^TR.ZFAM0G;LG _S:?E/?,PDVSFXE_9'^> MS3X\9\]6OEG#P.$ 4,SS>-L.#@-93$] N\R"._64QXO-PYO?\#(_]"&)_ M.(,CZT_'?GBSD,:QGJ+8:.,38YP/>GYOF]/4L:BQ9^5\1.H_G/D=64Y3-V)J MXX[O81SL 6S]H<_OV1'A6PY=;H>8W_WGE^Q[-EYL4C4^;F;G-M-,9GFAE&G< MU,/9U,BA![293W/H$27-F,DX5_?R*DZSJO#A+*Q/T<@C^%!^7 TOKAJ%H/*? M'W6FY#V1@R-FNED]@1B/TIEXE(W78#^C438/O7I.9" "K"X[YVC*%)+"N1 P M*!D2KHS35IH@LU8)NI1"LP?39-J(6F:@!_E.2B_'2+F(3!&9NH-,7-89)"!- M 2 JY= Q9"R4%3+9%&NRE@L85*K3R[].)H.9&@_.LNGWX44V.YN,!MO$*DA0 M#X"(51&K(E8=&5;)&JLLP%IKYK_GU KC.'*RP"J#B)+R!5J4:$V+0JR'X4[Z M\D1DBL@4D:DSR 1AW> "IP0XB@#2!AH%<"I24VI1RMJ4O$J+:@VK(! ]+.'Q M8E6GC@;+6%'44F7W3A\3[G"N;^K#CGL<]SCN<=SCN,=QCQ^:]Q$=.39CM>\- MRIXVLE%G'Z-UN1EW'/(B'.W$X^['W8^[?YP3C[N_H:<&=%@9>KIH\28*T+YO M=->L@$.W[N)>QKV,>QGW\E#GVK9W1718HU!%T9;)9?+M;E+\J#^;#2^'V2"Y MG$ZN$Q5Z&P['\\DR13[JVV]TCG]P1_5=.8TG@-0QC4X303GDP&J7(@J!<655 M;&X$-:NG\8]6SOO28"?GN:G9M=Q\^N2YJJ@2:/-\"?^,/R;3,,*3;+[O30Z6 MOQ8S/*MR1CY/+O*GW'G"67^4S+4+(J#V5O;6^3IV_(J0O6>0_21BLQJQ#4J-A$X8;2FW6EJC>('8*4H5?$OO MQ.$B=BM:\JIG@N^DH<';9DNTWX"@,9E8QGMUM+&,=WQ9+./=!26I8_.+9;QC M&>](\4=;QOML^#,6\3Y"VC^BDLZQB/>Q[7@LXGT4\SNTJK*Q1/ !;68LXGV MFQHY]( V,Q;Q_G)3(+5A7&E2BT6D"J(D?$( MHT'57H#K5/'7%O%N!ZORA@.Q5&[$JHA51X95$M18Y0SG5G 32IFXD G1)3*E#EA@ $408:F)-3!=IE)@ MJU^G1;6&50C('N/D>+&J4T>#L3#LX?FPXQ['/8Y['/QE M+.(=BWB_/??',ED[/HW'",+E:;S"@A##$+1I2GG*4T$,1;PCY$;([0CD/E7$&R-:8ZY6"AB*K/]?R%) H7+,8ZZE%@"( M '[;DK 'BKE;+^*-^$XZUZQCTVO8(!;QCI =(?L!R.8U9!O(%1(T=89KH $ M ND V<) R*U]RUXWAPO9&ZO)SX%K+%B$ZQW4_PYK'&AV.%[TRT5>^Z8QV4UJ MA&_'['AL4%M[8_7UZ@C6)_UNZR.$;&4G\W^OIM5#;OK?LO=?IUG_7^_[EWY( M'_NC'_W;F7_5;U?31%,@!HQ$7BF.:^C_#/?T[R_#8 MW+9 ?G'NS4+AU].]>EY8DZ__''Z19U_.CUY/GWL9H0GI^?V+#D_]6,\.3O] M_"E5YS9-W*<3=6(^J<_)V;G_XG=[ M9:,L!_GW0% J@( T90ZD%CM BG:A&" J-'Q?2WU*-1:IU?X7R9C$.M6B2EXF M(J0(+A=5S5_\'O@NR;S,N@GL/5UD[_XS3"7)YY+\GO7#3,K"UW<69@4T5L!T MDPG#)["D"<'LYFX3!8S:";T_O\H2,[GVM]WF[BS^EUER.1SWQQ?#_BCQVE(6 MRE:-!\EHV/\Z' WGPVR67!>K-$CZ\^0R+-[W?/'\*O3#D>IB.@T!ZU_[L^$L M7!*JD!9*>U5\MI?\R*:9?[S7%$9>5YDEOPS'R?QJLICY=\U^_?@:D="X^H[& MW\$^%&TUF4#O'C[2+]Y!Y68M$-IOJK!?+WO3--B'-= -B_P]KQ \/(K:R ^@ M?@"ER64NDI^JEWU8M/'("<#S8ZRW0!GK"]&QI@&?L^_9*(%O%BSW@N7H:B3= M$=,-2GZ!FWAQ(^TT4RX>37]"#?J5'I9.?3%<29S0)@QR'\&T_33*8WDVE_GN7>J&]A([0@>_#Y[T089HQ3):.7Z*5%!0JA2G01%.7:EI6 MV$T-E&+5":V^]X>CX)MSDVDXKSP+SL?<1[ER8/NI\&/7![&5]UK?+O_\O\-L MVI]>7-WFRM7=<]OJFD_CF\5\EE\ 5TY6&X]L^!/<-/O?14AAO?]Y3<_#E\IS MVLW8Q,Z&(.X[3D=,ZAXFT;J1?(H0!TXCC:5%/$5.HJI>I4)2= J34 D:#--)>)2Q*6CP26.ZLP]C@SE"AK-H<(,6/M0/&#X+3T"Z)4>Y58]!EU!%B%J9!'*"$J@23&E M1&(.;=7G1#@B'PFZ+;RQT?9J/2]L4XKLK')TL%ZW"#2/ PT'C59O'A@D=PH0 MQQW!J3>L)%+8((XT%9"]/=#L@4%%>Q"WVE,E8DW$F@/!&E0W1,)"(BU!JHW" MBAG#$ 6E4N,44O+ML>;8C*3] YI-3M0Z:T.=3^9UA/?]$=VOWE3L-W4P683@ MZ:T$A[YIKN5S9[H'.$EKMY*W^A B"#L/E=Q@C&A:N94X=(2NN95R KHG&R1: M@=L%S'LHKK,:V $H6KM'O3WL8]<")':\GUV!E[PNH (LEN=M^+@!H!]9@ 539*?DBGA0*&I0(3;I"3 M%%;]08$"Z^>:;P>HQVVQ[PV8=K.+V#[TDCN6!8F+$*DB4D6DBJWD5'36 _RY M+NGQV@2Z0[='#F!^<2\/9WY'LY,97':YNY#_9KUJHKPUXZ/ZYG<2T M=IM@A:2#DC.A'.#4 6)+MPE- ;8/QS#'#IM^'3')QTA]3 AE=;9 MR%1@PXA+A7&4 ,PHH%4H!*'TL1XM.X74?3C6ZU&,(ZI&5(VH>IRHRNM\:@FE M295Q*18&&6218*BJ\: 4,1U!U>,^V]L'2#TH7VP1C?MTD>6NQ%+L 9+N=4BN ME+4>JJ'"GMN]!@H=%JG6PE:(*1TR:WVK&C@9XW*[$!;16:WSN)3+"'U[ 7T0 MP%I;1(*D4!F++(: &BFA*6UPI9U;KPCVUMAW],9XA+\(?Q'^7@5_N,[&DLIJ M2Z"D(2H6"NJM956=ZF"EUC+DWQK^CMMJ[A+VW=-6[NEF.DTNV5;'H1>V?-O% MD';1!*F:\0:Q 1ZOK+#JN]3FR]])+62Q7H):MX M=[#ME_:H%\KN">:M6RSM1[#G8>_^VS9*BA3PYA00VQW%=D?[G+35&9 XX$4X MVHG'W3^L=D>_3\;9;7+=G_XKFR>7?K=FL4+_7GCO$:OKVPI@M6:(F]01C8T M7)>M0PP$G.I5[[WISZ[4>!#^8_]W,?S>'P6S^'F.?/$W/,, "T(=)*C)DK#QD]K88B(ZGA"P]\4"GNR$ MBT$/8%IUPGUMWX #[ L ,:H+N%+M51XB))'8,:"I=KI"%B:A>UT?M2.PRK8: M7M6YI*/H8SQ:S"!UC5*KM47$4J"(,] BJV25&#2B'7(X+HTC<+L>!\?+6@G ###)9,JP@@A)JX'5E?'@)(*=Y/@N M6A&1XR/'=Y;C":P;JI,4&0ZI @0J30&UP%4]HJ@W =8/+[K \5W4_]*+MH3*]H%YRQ"182* M0X0*7L>HN7=*P] @-MRVD]>]JT M]@C\P!%0(Z#6@(KJJH=8,^AHRJQTTAI*-2:@W?.ZXIX#Z[ )\ M1]$:?&^*L.QP0>(B1*J(5!&I8BO%FSKK86X4X7]MI;Y#MTD.8'YQ+P]G?D>S MES'@\.& PQ>8:K%=[4&VJX6L41T+:P>T@EQPY4Q([Z;.5,YHX?1:![+G]JL] M@I.]V*]V;RR?[CBF(Z8>)J;R1C4O!AS#@D*."!9I:J%A5<2$0/Z_'<'4/3C< M@SVXQ6B)"*L15B.L=AM64=TH'%)KF-,28>"556X$Q;C*+"9T/;/XC6"UBR=\ M454]6'=L$?#[=.O&KH14[ &4[G>#74YJZUXAI5(EF8*0802)!6F5FJVQLO35 M#7:CF7^@#7:/P!T>P\EB.%F-FJQAOPMM- 6"I9PQA:5BM HGX\I8WC74/'I# M?F]BRB*J1E0]*E05M?F>ZI0+*@$$T.NHTJ,IJNI[&*N([1JJ'K<=OS>0FAOS MO\U#&=GE]_F_^5?)138:E=SS?]Z!=_EG_XR+ZG,YA";#L2H:K!S2^?#:6]4G MV8_DR^2Z/_Y+LCZVN\Z$HM<[ 044EXO_$M_#W<4<#*ISGSG_N-/\M&64Z,[[WZ9%/"G4PIPD!0 M3FE1$!@#9&0JWA>%0LL'/'GY/T=?1X$?BLN_3,*PKN;SFX^__?;CQX\//[]. M1Q\FTV^_(0#P;U/_\V_5M>^2G]>CCZ-^V/1L_/[O9T^L\#;"YLHVS[5')LEF M<\_Q.'O&XZ3P/??L[*7XBR@A=\(#S=AKZH\\-!)H^$AZJT\Y>X]_L-LZ.?2GU:W M^V^:_B7_TN'X[FM[X9IBE.60_6#G^;0:L_'77/@I?/5<.9E.)U_S-A^#Y.MM M\Z*R*>2@/^_G YLMOL[F?3^V_FATZQ^;)9>+T2B99]/K9'*9?W'O,#^L4'.# M4N]#CH@6+T.+>[M4OPXM1*H( !98CA'74AAH:O9/+5M!BZ&4Q;K!5@(#Y[4W8$__3-+L,J^Z9;=S_EFLGN3[!_S)KO,9SE^>L MQ?5-V)WR#25WWO3#]@[]K/RK?TP6HT&RF 6XRB'%DU?-ETVVO/V0G <&7DZJ MF$O CN9UH,#7?GW#\\)CKB>#;/2^F.P\N[@:#[VVY>%F.+X8+0(=)Y-\ M>,OWAGD.O)8X68P#MEQX92D)UD_QI-F'PG3Y^W@=9!?A'7X&8>3%Q?G@9GY; MAY=^W<;S9#XI *@Q_KL0M *TN\(@!2&K@$%6?L M"@8]=?E>8Y#*J?N_%N.L8!HD>XDWL_R_@>+-Y-H_\':)&\/Q=P\=103J57_@ MD6(>FCG WS6Z'A-02/_V&RF":52*HW.M?/ BW,AC\]9([G5UY\^+$/[B&: MY)<<6B>+FD7?A#9],ZBW9_*TWC^'>P!*TL>/C<', ZV M]^C.$& )DB\"Z\? >66T?B\\HQ3#ZR_FD^J+PKV7?U.@M:0?,$3TSY5=?N&W MN'\SRSY6?ZQA0@W[RTP \NYAE"]>(^"?&S+A[F^/_<2?=5LWDVRW *:Z[['\ M(B@*@9_2["+W 24E>X@=^8KW+,#I *8!*L+OVC@D+4(8>>L8T3Y/TGI 96$ MPK6XT/N\B/\SG%\UM=?"8?DENYB,+[S6V0^#6#H:=7\VG.7%#O+'W.\S[6+% M@#T,&=KB"<[6VA7- L4&N7\\S8M^>9)A&]5#0\4[HR&0%,J4&NDW(70L+NLQ./5/,(FGFE=+3[&J5F+\Y\9:-VJ*0.IBGQIKT-.3'&$8I* "7&Z+7XPQUH/!XZ M]^_DM9O\\8(CV5:>[1<\;.=PO.@7*_YBMT'+GI5[!KEG0]K:&ZNO5T>P[KUY MF>MXDQ%"OD)(^;]7T]HE]"U[_W6:]?_UOG_IA_2Q/_K1OYT%'\75M)Q-/\>Y MF4Z=\XH@EAPIDS+'+"8:<:&X@08A$^[IWUF&9SIMR\5X]6SSCS^*=WR=C ;^ M$<,OI_KT/#&G7_XX_:+./YV>/)\^=C/"D]-S>Y:;*X]C== MW*N^_^-\K2_:V7QR\:\K_Q1OF-G_70SGMZ&00QWR%$XJ],A?\^Z>@PM"N @Y M^\YHJ3GFWF0!U4D$-A"_KWNR(B19*H0P#CA,' .,E4D!ABB4RD)HYBNLYB]^ M#WR79%Z$W@1>GWH)_)_-:?U'4DRL$I[E"JW QPK.;S);^ 2J/ ;%L)73@>)C MN/SC<.XYZ.(^8CF["D>,7[*;Q?3BJC_+$A7"*O(%:D6HM%38ZG24Z'#O#NUIGX6:#]6UI/QSO/:2"?CIQ M2QV4/6J[4_#A2=/]Q8N8^)]'^;+Y^W+JK#=M%H[OA[.U[Y>;>3&Y]AK[11&8 M4)[JB8)C4_\8+*?-\-IP=?A9/"N-[R\^$-2GSTF&-Q#<.%5-Z,L'/&' M;^\CK/&@\?7@M63U)%75C>P(:HK5#50X\&7 M;.ZY:) N@DWSAQ_79)!#Q7V^(/$W\H\[OJ!9>65-4V!)4>#QGE!2]+@D[1-5 M,:3"U7A]/1F7># /N8N!\[?-\Z@V23ER&&O(D4"86T)(*LO^Q 8(KI[B^0=V MYSYK\][-634XZ6N8O6+6U^[//TMFA"E$JWH8H:"R4@J5, >5X#JE2Z MI2#4K2K=N]7WX*;ZGH>RZV$1,>&)RN0+_LW#YS";/5/I8XHB8#643F(FL9:" M+\-/)("\H?0!1Z0V.#62 BI$*DID^<-I$:S1Y6^)]^SIO0UYI8C\9W9O5;[ M>\9P]D+[^YQ]ZX\2KT5<9%D8SZQ;K@070G7FP^LLCWL+_PT[64;(3:;^_4$? MO)@LIK-A E.%G,O+?)'US^%".+Q9!Z"B&\\!@\O@@J0ZQ87V73>'X[G MM_G#9N'.4?_'S)L;X3WY^T(LXDV]W,EU_S8\:#"^3:?]K M"#:>) M_[X^KH5=D_O_VOO1+<22[]_-[?X5.NMNNLDE:$F*K]LPYK..RNQ97 MU;RV/\T1$"3J$A*C);.8O_[=>R-""TLN(!()8HY=G8"66.Z^_&)*58Y8&1GP M4F1[/L=)86G,')8"*!LV$RAWYM XX56@\F(W(K7GKQ@W>C9K BM II_B""NP MJ=KRLS2S/F'@L60$VXL.-R2V*Y8.?E2>_K$6SL^L8&*H4N@6*/_N+F!(VUB\ MB@[3#RJ_!0([F5%D&4;#8&#Z)-IAU#$-O6. +C7U0;LQZ(Y[ @5PT.B;EK[C M"/<('QO;[J>)*UCSQ<'VY]H^IM$XI?&#P@8=A_S&\%UO*=LI.?#X^(WVJ+&N&R=_F MOPV82QT4=[X_XS(4DR38TU&C3_EZ\"FF 5TJ6\,) %%J*^;9+I9EOP?!Z@33 M>(ETBCTA#UB3G2/DI#9;E(([$=!VF)%]X-F1R8+%T#Y\DTAFO)O728>,' !A M&>09)6!36'FL2$S*Q>5RKM P_#NE;G#9M43KW^)[< &OA%: M\#T,8,DKSHEK4_XJ2MH6%!3ZEMD["@UCW2BH3))T& MR-F9B@Z#C%0W/,"+J MJ&K".*VZAY_3!VR8&/)%8@GINA#O"YBSG-"C\?KTNAEU,*R)T<#.#JGF%5.( MO!UIY\6U#"OM*H">QN#4+DERP/1 .GC<7$UY8 4LX45@C/BK-25E81J!/6/ MM=. =TKP'BK0 JO 81$N#5T(3YPCQ]/LN3&#X\2'1@LG$"/D9E.F,RIDCVY" MF)D1L-B*H3SG#R5K#W,AP&9L&D>B4(A:'>03^.N6-BBL>*FM?)P7F2 MG##7@1'P*.40,"BTH-'3Z?$'G?N>M.@@-GYN8X\+CKQ^7ZP M_50J_,@7II_3/"(6/?AN&2O,#:9SA*T&N[=BU,SHKJNG/'ZW U0>1>4+"NPX MD.2:=!H\\*$BO0(7+8$A\;=9/!4A J1KX!2P3YQP04D#V!HP9[@Y).[&5M%$ M'Z9-<"F')=<1QW.Y()_CA*)O#)\>DLRD)K?I-(CA*S HF(>J@ .HM]]*-047 M\,F@S06"G.NJJ*V" ;-(-I<]U0]R6')P"FL2N^S3_#-?-+GS$B9A_0TM MNT?#14:[/1YV!T.CV>D:K7;3ZK6;,FXR'(][F7#1J- M]B7VK1BZ?ES/BM%ZLFG%:A[6M')@KXMZV2$O*VE-?>>E$J?S)"920KKMIT[# M.@&H\=YY;Q7T'#3S'4;)MP78GMH'GQH"1]@0>)U06%>V[5^='T]M^A6R_),' MX)U@[[=7XK!"X9.1RGYW\DHE1#FHY)R$(,M\%"&4@!"4N"A@910)E9*$'A$T MU]<3B(44X*5[&-GRYR+1=FXP@@IV_5UP4Q_6"K2Z1MH4W>M;V//2:K1TJ_%V4_17D0_/QM9]& 403BM%%KF9W7 "4H9Q->J418F3"H ME:BZ:%'5-M(LAM5J-(:-CMXVK5[7Z UZ1GF>KK.G%HJI3E*CJ-!I* M5"E1I43558DJLYO!AFH-VKUQ9S >]QL=L]WM=J55U6_V=+, 454$TA.(JF[K MR08A):J4J%*BZJ)$E97I;^R@%36V>J8^[ Z:#<-JRD/ENJUV;^MXI!>+JG91 MHLJ\9E%5TES;P?/\C(5D8;;@__+0Z9[BPE;:LM&QNKK9&[9:S4&G:[5'[6Y3 M]JYW#6O8>QD7_IX4Y[T/PYC-3HLYU^J8!?)E:8V!"]#Y5\%5G;0[O#$>=KN# MOMF$_^^-NF-]H.LRN#ELMAN%@I\;/0&?=!3 MC;'>&(Q;G9;5&8X%5_6P&OD4NNIQV(7GX2G'545QEIES5[?=: M[9$Q;/=:@VZG-VJU.A+2P=*'G<$I=%4Q7&45G)HKOX]5]8(!22Q:'-IWQ^*# M%[H8K\68CP&'$V=:*6>VS)XQ;/6&;;-M (/J':LE,88:S]IE48*Q?H"+8+=005*RM6KBXK=U)6;@\;1K]CMD:]UABXN6V9G:[0 MRBW3;+[07GY<*Q?F?9IMQ-6[H@[$I\:J: M9KOYPL*NQ[5R82YOLZM8^9(3E)FB>H28.::<_C2G[%2OJN*YRU#QZHINIA#, MZ ^[@U9+[QJ-8;MA6OWF6$3U^N-AN]TOH+S^H -P=A2"M0N-&#QY"$XIJRRN M(*ZN))625(FDLCII!4IOT.@.1N:X8?::O:[1-H:R#JS3''9?&!K96;):D*0R MBZVN5Y)*22HEJD3T;/&T@4Q\] M?/JX<8R/>>@Q/N\]/*7DF_WCF8?V#%NF:0S:_:[>MGI-:V2,.BV!PMIH&/UN M!H75ZK5 A73P\*-F:ZS#(,:B;G)@-KKC\:.']CSYGJU#>_A,-)C*\6?T/.?M MQPS>O'DYW;P&[NRW'@P1 M]$IQG,EQ>-W[<7=>_*@:8O4>B6/^5*JIT6GJ)K/,S,%9>*A4;S1HMKM#PQR! M1FXE?396>[#5$3"2FYW(A2^PT_S\JQ@H\E-R$M!SZKE [TY8D-71J8J^Q30@ M$#/\]:BR;M6W-?7;GX\]-H5O!-!&(3ORY(:DC4^#\#[#\R1L.KN 'T"P5P A M^O4J@/$%\!)M%M-97W 1W3ZCZR;,8W,\*B&#I,U^3%D8:G2*XRU'84>(=.:% MXHP$3Y[+.?7O/$<>'V'C45MXU 7+/EF+5_[F./F9#'3:!=T'RPK"W:/;['CF M1')J.X0FG1HJQ1X=;8.Z ,>PZ\ 90II/AL7/(R.YG&+*1Z@0MT^UP84'Q2D/ MXQ''8XP^C'K)*29/C5+*Q ,.'CBC8ON7QU0:+,.II7/#4-+Y*:4MCZ$JJU$Q M10./L:.8#LO*TI1I_+PMJ':(F/)*K.<V^V"O0_3L%H&8S6-#/(%; MNL.O<[Y\ZG_ZI@T^??G\Z4OOV_M/'Y\O:E]GA!\_?1M]U;Y]@C%^_/KIM_?# MWK?14!N__]C[.'C?^TW[^@V^^##Z^.VK=JN]27RFS8J:U 7/D% !?MH%.EJA M\^,1BX%$P;;;4ISW\91ZL[*-DWVKU1T.C([5!RTW:G9ZEMG#V$JWTQN;6X=5 M'ZO>_K-_"<46LEL[><9 MPB*1T&N,6VB*Z&9G;'6&>E!ST M,_,)_<&@VVH-8(D,:SAJMBU#'TL+3K>,02:? ZQV3+&PV:SW^H/S.[ [(CL MXJ#? -YZ-"3_Y'MVY!-F,4C,M29F5M/^POR[P%XM8%'>>YQ=I.S^"M*,#MD$ M!VH@CU(]-@OQG#$?,^7G&L?/.OEN-T4>>5K@)E%EEKV_%C\^2EY-4Q]9_=&@ M/VP/!HW^8#CH]Y(UZ'3:V725V1GV&F 7]1O6N-5O EG)8$ROW>E8CZ[UD^_9 M(J_CSJ7T2?23GC^9 K.,MMY@5@:S0>^,^UVS/S+:K4:_V];;S;9L7.E;H^V# MUC^2RODTY_N'>6:Q9\]26"&_-JNQ]$1CZ3F%=1NR*2JM!SR#FWDW?_8]]F1^ M?X,Y7[Y\3W/P,\CBSV(OT2@3,P81O*56\@8-'N.)X]8"'S1"F#F*-$ =R/4E MZ#)Y'9[D&_CQW0)MQRAP)J@V27"!'6D[H$IA44.T)SV/N7C^>J@],-?%_](Y MP]XM2@=4BF!&5N^@V3WBN8A9%'7J['A_R',[I#_M]78IMTQAMHS.!^8SA,&XX?W'"[Y]9@%_8=\S8 M&S7_6QA$?_M@_^$'"?7T?CCAWYQ@$OVMM[3_X7L?Z&#GOXG7_&WK-?UUGWG3 M!9BEW^E6>>%7Y+PO[)Z!8OG(HJ@;)B@W02N#8=?<2KZ^D%8ZBE8XK33JV_A(Q],* M^FP^B'C06;0"^4!.C?N'H/CQ0N[3H6I#Y?>&+_O;NO8,YZU(+5" C6\>9^,W MCM%%.SUSI8FRTJ6=EG;TVT9_9+:ZX[$^:@]'H_9XW 4OM=%I])IZH[L5WGFY M)OI?)5U NIBGB J_AB9JI]UGXU:W,S ;UDAOC"RC;_7!/T!:&9B#8;NE;^$? MOUP3*5K!2N]V?1N!9)-6MK7 *5S!YTCJ(E3<]G2TC\;=L:FW!H9N M=7O=MF%9O08/F8[-8;/5?W;(]!3AT?<16PK]5]<^V!ZP'SKL20H7@YYQ&,JH M8,^SW77HA+A=8\>SO:D#>PL4SPNZZ)HO+(S=B"Y)X_G/W[&3;&P4\ MVJ7GP2\G$W1%"K=A:#.>M((U#CFC:0L[U":,>2 O F ;D3?PXX"B(=AY07;! M/-D/3"/0-H:T(>'"C]T9/ *XR\8HRAT#RR+@:;3G/T9F%#P?PW2.-W5CM*"8 M&[('>!Q+QOW?L1U$+'#7&@^3 7]K8( ).C/TV__&'.6S+I2K$J),?+"#V:WK M^]\ILI0.#N[)!"%\'\,6.3"'WI2*@XQNHT$!(E!0 M:!36> \=[\QVG$_7C;Z@3&F.Y9YF)5_F# ]LQ?R-V!H*XPG?\"+9$;G)K3G M##8\F/B@'S!WBBL^6<./?L@D18141;FRL7,G=NV@EEV-;3IZQC)'"SNB\<#F M:G!/Y ?8%*3-0<.$-;'9L+ U;1)'=)'K+!V17\J_?,H"V@*//<@H'@_&<7LV M@OO$X:;B1]>.02'C[_*;&>@*UU]1\99-T"USACE>N$22:R96*+]DEN8P_SB!,E@.IFF@PEYX6L:T1)0 M3B 'M^Q4D+@?'(@14 L.ZAJ MG+DC61W>$=+MF[?"4BV!)&+CFU:N[?$'B;H+^H (U%-G)3[")'W2'+C6=H#I M#SZD.LJ3?9.$/?-=JE1 +0'T$X!-S-&MP!.!Q&K MT8[@&./5C"H!'KT5+PS8'(US#44(&F"P44XPC9#:M.#(2& AKA*.DC&LJ4")]DG^N0O*2B6PQ-$#WN'YG<5S#[[>^@>V#+ M[% R!PT$V>H%*9C7MQ!/87E_ GE^[["'PWR9M.ZH8&?&^8)*50.RL$$X/.0IG"HY\9".4'N'/%_)5+A2LS7UOZ($OAF@4P M!W(?5_)Q1'\+PEB !*UKG[;5/?"9NY+/ V,5[-LEV3<:ECL33\.X10':%,?J M.N&"OY/+!P>8U\92&A<47LA?@APP!QO8Q_>#,1QSE3,'7H]!^J!P!X4++(^U M.6RZ\'S7OT/9(&M^8)0>5WDXTWQB9!J0@D)^3N7 -RCSXB2$W MHPJC/>*OU<"*"=YGD=QU>E.+@1J $0M.%FT>2BGB:UP9UCQNP MQK$F.5^R.Y(<;V*FXG>.)Y*[G+I(;WFTQ*101)BAEKP WYG+"M=$$P+_&44X MNP4.A/W,I)RE:X3#QB5^\ -W]N"\2)YME$*U-@ DGBQ4*:C"L!<>53Q88#>* M(*F99M1@@;1Y[+JW8)0PI$S77S.6493",$5'%"P@\(A2,P#5MK/"Y09%QK & MCKC7YSR@S6*R8(#A8"MNX5[RQ0DQDB@UC&[3,LL-:B2.=[G) 4X&#W)PT3&/ M0 _"4RE.%OB>)'VP$F?XBQ1JR$=901*".F"H&0,6AV1:):PZP6(@(5!A9>R9 MO>+6,TR9:!1XUEO0T-D/H$WN'D@W1JP0+ '0C$@CX&A!:(32KLXZ/L+>1['. MK67RS[+^'#D'\ >7..33L1KW8(@;T/[9+-?=X=OQE0@SE0RY+4QD!4@3M-RY M1.0#JR5234K05%#EEY76)T K-W'^0C"O24_8*XK&_(-IHGU(>&\/W V:)EV- MPEE$64^C2*HH-Z39-M.7JH.HNY$L++B#Z*R1NY-":3RYG665Z<)^XLE6--2I M$GC&5L009,$CZ]L3]+G7W(<(X5M1E\\3%>2=+\#7 IYC24W]IEG&>80$L_!+ M.>N@5,CR.+?OB,4I@BA[#;BAF01QA$V8&YL8/^J#=2+6\#H0PL2!+"_$I,P1 MPE&ZHZ@!T/A$B<:EJ)"9? KA9E*] OO\7O8Y.,%,^SN/]U'I..^48ND*\;;* M+[Z_G-B:T^;+U_XWN:M_K7^M2X<-S44N=._M:0QN)-= 2PDD85-XO9?P 8& MIR\@?Y6K3K*_,PZ/\.'6R9H2@'7MK[33[Y=@3E.>P>J8OVI?27I_X!9Q M+3_$?T,_)$!76+@%N3?6M#OGGFA'9@1%P@G)/O#!EKQ'UX FQ$>2\Q >%LP# MFH5_-U^:G3FZ0W.,DBW8+&/!.^3?4(B :@H?/ V-66T"BTED1@E\>EA8_.4D/'RT-NU:(7_OA69DL";#?T]VPL:]9P>X!.W?6M<&)2?L!8+[?D M;6(H!ZT-BB?6<'60ZY#0XU66*N3 YO S,,_SB8PU\3&"MS;=/'JRXTE?*?7^ M,!VQ%B'8(QC2>B4&'/(F)%H@)P :R*]/E]9'1+IGN]D/.Y=JVG_:*T&:@X7C MV74M\^00'#9ODRCXHW.B,7E/]."3E),D*V5UCMDS6Q7RZI>P^V^"2(&*7!_N M(Q..=ZH(AUALU-9,:OO$!L8Z.=_-&%MQ_@ KV&/"A^(O8K,[%DK/BVG]P+;O M;>T/,+Z6+?'4I;]*0H4VMI--OP/Y+F,W:@DV48-@\ 88DY(0A!:VAFW+6:Z0J?"EKC"<8YP*:.$B3&F:6-"R=1- M?>\P8,=VO1Z?NO&\V1:-@[DQE\,YW)5^+>Y_H@+ TOO&N#-N=_I-2V^/NYV1 M-<(*@'YW/.J-AX.S5@ ,,)F)(:7>=.K''AE"GT'\3I,,ITP(%%1U46!#Y"I@ MF(>0SO?.U#7W)-&W1RN2Q(!(?V$@FM)_C$<*Q>21HS%ND)JZ?_4HU?DUH@:5 M@/T]=E $+I-R">3SI?V=)4VK0J2%8"&ON,O),ZP43Q"]>QBFPS6"[T>7G1<4"=444(^:1C7Y#RU# (AD)] M$M^XJ&CHNB*0$ H<7D&=O:\#K6.96AQ*,\-VP=[Q>,E#!*)'% XLP>#S9QQ" M@9XM6ZO%\Y/G1 ?L'/3*!O M'IQ9M("K8?("D7T*JV^O0O9._K'E -\DI_PE!U@:! "^YQ! _@ZK^_.O\J+- MWPSCD=\.^^ERGEC28Q4[+^7PSI.':"3DU'SJ/-3BSJEB0X:.8[ M1/,WM+'X>GP@ XO_/4(KZSI/4;DR O@*IC7?>6W?IE\A\S]Y&/()]GY[)0X[ MG^1DI++?=[I2"5$.*CDG(6SVARM"4.)"B8M24TE)Q<6SC8PG#ZDO^8GNHCW_ MD//,BISYZ<^I X>^OAD!+&2:Z68=,\^B]I-3]L_GWL^2";W7F_B93V,L!Y6? M]R1#1?Q*BE=_R!_T.GN,@#TWQ[DA?[=)9_ +FI_;RWDU(2VI6],"Z2L)<34;=:O(69Y\IW:5C"E7YW((TFK6#\G%*8)4!'DB M"6D4ZUTK@E0$>:R$-"^"("\M0--;XF%B_T@:YO;WR!VR?:]9JU=<;/(P4GUB MKJ45H1:*H!5!5[!RJ6F>Q"C>NT3GK5%2K*!8 MX3'!WU"L<&D1X;\$B'_&3Z5Z)2?Z5?(/AY0,E%:^7KH8+2<5-0^+12@J4E24 M5YN'5(LH*E)4E)=%[2I1T=6497[:.E3SV*Z'ZW6F+GCB:O?5[JO=O\Z)J]T_ M+&ABE%?K?]ESXO7%V)M&HUKVIO):2DE%*@ZGJ.AX*K(.RL$I*E)4E)=%AZ2O M+B6"4F)CZBMS74><;<:/J8%/Y_8A7J'2T3C(Q%*%,I41A%4C2/VP!+\B2$60 MIU'9W0MI(U0$>2$$V:XW+X(@+RX@]Q=^4"<_:'&VQ!.XHX .;;L8!^:PNNO2 MRKQ+%VWE)")#5Q$Y147'3J>C2IH4$1TMBHQJE5=>3T#NK"@A%7,)])/T*Y?/ M8U N[&6XL ?2JZ+'RM"CDJ]*OBIZ5O1B*?B^/?LW30"PH^E7T^RKT:QT&1%Y)^KW"%E?' MF_K+LQ\Y*IDLEM:L5;F@>!M97NG""HLN#1 NT\1_" LU9KFL4-ZLJL9H-5/@C1=6D%Y\?*PHD1XD%A4 M1*B(4$E"1807180'>3-E)<*K"7>^)]-1F["Y'S!A2&J1_>.P5'^UG!KS,,%9 M.J>F5#1:*E%:+7IL*7I4]%@J>E35TXH>RT./EP*0<&E!R/>)U:B]F3"/S9WH MK:P8U:[& WJCGZ0<;WL_CYEM45O^5CGN%T*V!Q9XE-5Q5T1812(\39^((D)% MA"^2A!=U(OC5A# _LNB(6LW<]C5@^V9^C"W_%>VX,P\"*SE^%+JRNSJ,T(1)Y%7GQ$4"UPQ"[0*<.T4"R@6J# +M!4+[&$!<@]^B6R85O(] M_9L9BNMX[';!:"Z&J?^AT]./X1+W_G1##K*?_F@;]TXKLS>.C 7Z[L MP DY0->W1< 889]^=7YH'^#R1:B-O!F;)<'F4PSB/V./<;XRNS7-U(WN*=]& M\WN=Z31TFD[GI-/)4^!S:'ZPM-T\M^E<4!##:E/FNN+7/]WH-_09!CZ5GW>L MQ3=GR4+M(WO0OOA+>TO++.W@SO'X\.PX\N477)#1-P_.+%J\ZW;K7=VT&O*? MYL]27((D=.U5R-[)/W[=%&4W24 B.26NH=_LCU?P-^)JWVQ);OZ;L?^G]D%W M'?93I\KO>LV%4N\J=)=+FDGNO%0L=YZT6A.!85A/G2OYFL'G+=%_T-1W*$QN MY&2-F^O,,US;OF^:M-4I'SDETS?.L/?;*W%8B^W)2 4M>&W3%[E2Z5 . CD3 M#6PZ<(H&KHH&ANAN!7L]U]<8PF!A>W>O=?A,6>GOR0//+Y3^/K-@NG4:N") M)0"5(72M-%!&2UE9224B$&4E72O]*2NIA 2H0DJ7-].KD2CM$^SDZ\N'-^\] M+5KX<6A[L_!*VZN>K204C5-4#OK MUTY&SN?#5/CI%-7*QL/%:Q_B^C6>SY1=M;=KQ8\? 5A2(27'S9X30"Y@= MPG B__ 1_62V]+JIP46NXWL'/Z:FP6H=?#=Z_3\?\>XIX8TB5. M3#='@G_<_+FN?8/!_=1HU+MRK@DIP1]:\#3YY^KWM0<[U%:!L[0#>*\V"QRX M7YNL-3O_7'R6#=+,OF,:B*XPU$(&;_?N\.8I0Z 8&-+/I6<[F&V6W$XQU*W2 M]P,W.;O\CRW]OAW$N;EV[$T7N#M^'&@>>X K_5D\C4)M%@?X#+PJ9%/?FVD+ MVYWCI7,G!)5%4R! 6S_P$K%3%8*:-N)"P4>TX4YB71YL5Z_N+33K@ $M+>EWI':MK,7[(0 MK*-$9J4J\2MXO M;O<.0W!Z+:LJ='Z4CZ2*LJFL;KO>.;=-!9[%^6TJRVK4K>)LJE-035$65=-* M9_JH1;4UB=/94^V?2\YP.R1JL0.]:ENJG'N^PY(R-XVCQRVISFY+JJ320=I1 MI=R-QZTH,(2,G"'4Y7;0/.XR56 M165N'L%"_RX"^9 5B*C;">S&]UM[#D-Z9[L/]CJ$5_VR",1L3CS$'='KQ][X M'(C.0B+H3VWGXSBZG=5K@9P._#!"'?"9JPE-@9X^$_34T/6RPIQ6&GKT-1$U M%1YL"=>PI6!.=S=F70GWHUX&TR+R_*MV3UBVH)K5Q+J-'HU#K=S4H:U1-:-5FKF*S,3*8W:FU#(28J M)E-,=C(F:S1K1ON02*+BL,YGI.>S_0:LK1N':$"RT^?UY1MKB8)6LV#9*EETU-(V#SH11JD&18('6R2'E"XH$RTB"RCJI_/RNQCHI M+4K^GA+8/()J$G4^I"XSA> ]!L^UW C&Q8"L&GJCWB[Y8A4$PWGX(C6:!1QS MD(,!G>YC@1P"*'PA4 YW8<(BDN(".)<%6@0WS.>AYGL$#_K%]Y<3.T4(=98K M/X@(VU,\[Z^>@Y^_1G;$0FT>^$MML' \NZZ-YG,VC9Q[IGUEJX@M)_!XT^(; M4$M>1#B<(8LT.](,7< ZLN36#_8:ON8DGMXTCX,(1YOC<[/Y<[U<<-//$D^' M$Y/9;!0HGDH*#%K0J1IZ$>>+E!SB]3C1U"Q(?"O15*1H>D66FA)<_T*W/-E4Z=/"MQ3[;L" M]SPL3'R]V(UGAZUZP:*4-4VRY5KV]&J0/WFF?K4C4Z] M RH &F 8G9K1/J2;1*$&E$G *B8K-9.U:UU307,H)E-,=C(F,ZU#$!L4@U6& MP2J&?:,?U"!Y = WBH"5ABBGAFBT%4*:8C+%9*=E,H0A5.>'*"933'8R)K-J MNMY4+';)+%8Q;\>HMZ_3VREI7O;(? [O-+Q4Y"(%[5EQR5EQ$FR:]4,,9$6" M921!!9Y5^?E=#7B6VLNRJP:KK5"?%0F>VSHYQ)=3)%A&$E362>7G=S7626FA M/;,Q$6W&B@#,PRC$SP??77(8SV* \M!++NL2%820)VD)!WN7);(<+%W 7#OB MBYDBN<'/""U&.'"KP%_ZD>-[MJO9" CG1&M\)$+3.5@![]GB5WCB=Q:%-5B0 M,-(\'YEMK8T^C'HUS4:4.=?%_V81\&;/!KM["NJN7("8IV!J,-Z/I]A2@E\6 MQM+M1=S\,;/.<#+W6A7A.9\WD/+&EB6:%*OFSJ M]$FA2JI]5ZB2AT4HKQ<7\.R02 I5LL+4H\"42D0@KT\#"DRI'/2GP)04 2H! M6$H-J>PK13T5MJ\4]523>I1E5@'*+8?95C+*+;5-=X6ALVL!4[PF<_TD>UHR M.:+0,^4=N?*%V;[R!=637X&>_$:SUFHJ(,VJ"V+%8V7F,:O6-17,G^(QQ6,G MX[&V JJ]; :K&++,85@)%X LHPA8:8AR:@B]UCTH:Z:4A.(QQ6//FE&K7>NT M%(\I'E,\=KIH0DU7 ;O+9K&*^3I6O5!4U^KX.B5-WAX\QUZHV=J*I\OM.Z;Y MEN#2US']PY^2$WS@\.'THM+V?<"IJ^].?A6# L= ?>7!LW>EAWP ME"#SCM@HJ]X]ZT8=AT;[:AM5"$JCDXJ6/"SC+&;(;_#(]'=/6S%_Y;);B=DX M]<,HQ!G_9-:;YIY,#S;JG>3!LSC I^Y9TEP;<\GP55]'P#?JQID%O%5OGDW M_4SRPWP MK(N5&^4$OSU2O+?:9Q?OC?)O4ZF$>S/=L<*$.W]R1F)EI7LI";^N;>D468/P M=._OS>,ZJ 58VZ&]>C?12 ?LK+OV.T$-NO[K3V'(;VSW0=['<*K?ED$8C8G M'N*.BHW'WOA8]V6A52-/;6=9\)V_,N 4@8_]@5"OX5.QZYFY/^?M5QF[N=NM M=W73:LA_F@K)N>( Q0K)^?B?%)+S9G/^BX2T0G)62,YJWQ62LT+[4DB#KY]5 MO5[J.3O2H"(0A>2L@'3+ 0GX^O17:M2_:R+ :Q6 Y3"A% VZN.F::" M.%9:XNJT1+=9,ZU"L?B4EE \IG@L>T>[73,;RA)3/*9X['3>3J>FZ^H\EXOF ML:IY.XV#H+ NP-LI:8KVX#E>&%X2;!]T?(TBP3*2H+).*C^_J[%.2@MRO+/X=1< YF1] M!+R@H:=(I.=".3;KW;.A8#9;=>N<\(H8&*H">N[9<3"MYGEQ,#%\4H6-*@ ) M[PWBU M\H-(\^- \]@#0E_.XFFDN7;L31^ MMV>DGD)\R=1>KFQ04>G=XF9[$O@V_"?4'D"XXG\7(-,1<7,?E*=1;\CAE@PB M^9740Z>NGUL]-(YAO"/50[=9-\^*OMM5(,G/P;)NGWF;VL< >5<()/F4JL%H M9+#KGZ,;#M('-@C^@-W!E>%+%$$&>?E 1?"*P+=_81X+Q$+T9DO'<\(HL"/G MGCU_Z%>+?@L62L-HZ\D_IT>_;98>_+320*MJH4HXK^<]L*15+PK]]F53IT\* M_5;MNT*_/2QA';E/HMQ6F'@7Z5B(">7T:$*!OV!2@P-<4^)HBA&L7 M".4P*10-G)T&E&%PU32@# -E&#S;,+C">,2U(&E>$X]?RYY>#3IJ-LMK/Y+E M56 +%0!;,/5:LWM($XX"6RB3M%4\5F8>:]2LUB$NG^(QQ6.*QYXUHS=FK=,N M%#1HF_J.F6A1.W>(-W&U3%DQE*$WAGD-,$-O%:JJ4BR542Q60V%O*QY3/'92 M'NO6&KJA>$SQF.*QDQF7S5I'+S305U+K4C'E!3M(1KW0.%I)25@!L5X#^BF&8//(+YL!,G#JVUX/+MW_#ATU[K 5BUNBD0 M\EED/OBEY=^FUY?X5K4DOI&"[1\J\5\11K6W],'5^D>R?KWIWV,G@!5[[T6V M=^?@(O?"D$7ADO<=P6T6E[ HS)"99X=%4T!K5:8>LZ.IZ:HIYK44QXDM@I0 M4#E@VDI&00K!LQLCB@84N&MYZ* <5D-)#8,KC(%<"Q#H M-?'XM>SIU8"[#OPP>K(7M_ =5T /Q;52-&J&H;!4JBYA%8N5F,6L6JNM(,$4 MBRD6.QF+O3%JS6(QD[>I[YB)*KBB,S!EU>"*&HUZ\PI(6.&Y*L52&<72JAD= MA<6O6$RQV,E8K%NS6BH"H5A,L=@)3V35K^'$EFM <_VT M8MBF[MW)-O42U@:JS.9< M$S\W]3>,>OO:B5_U+ZC*S\I4?K9J;5/U+R@64RQV,A8S])JN%UI<$-#&8)G*>2I^8JDH'KA7A,%4?NL^_8DQ!853]ONWZ(?5-. M^E1%C56D0+-^2$V.HL R4J Z\+WR\[N: ]_57I9=,Q@'E;TIS: HL#C;1%G' MET*!RC:I_/RNQC:AH,HO="9R\CW]FQG/\TYV%BCL$,ENN;)Q$Y+_"D(\^ ML[VF/<"@TX/; ^;:43IZV"NY*3,GY&>ZXVX1G8=;&P5/6SC3A>:$VH0!.)^DB5/BF!J=_%X%\ MR,J^8[<36*3OMW1^_3O;?;#7(;SJET4@9G/B(>[(V3WVQL?.02@T;_C4=CXJ M@8S.A@BB+XX>*?^(E[]S(EB$*3SC$Y!YH+WW@&]93?O(HF+7,G-_3J]4^;3[ M;K?>U4VK(?]I_BQKK^21]^_D'[]NVJ(W2;P_M:WTF_WI /Y&LUN.X\@O]5V5 M/B/^4M_UO$TI:0KMK$= 7<89Z-_(7(Y#8RMP]K2BGGW4HXZ;+1&!O#X-J.-FSX]<4P8Z4.?0*X%0(I-"T<#9 M:4 9!E=- \HP4(:!.H?^B&!4-8)-ZASZ4^]IR9Q^=4B]O(-G?AV1^?4V,[^J M ;0"#:!&K=E0/=95%\"*QH"=XJ^R\5?%$ G* M .9V\E8;'K]$.NE.B1[37GH MJE+@(>I=46 9*5#AG51^?E>#=Z+VLOR:0=DFB@+/2X&'H,0K"BPC!2K;I/+S MNQK;I'@L-IQ/ 2/>*GZM(597[ GLKX/QQ'XRZDT-+G$=WSL"1\T[ AVMF"', M_2"#WU9"J+ECEJA0 +F A2LVC9Q[YJ[KVLD(RZQWSDU89ETOCK!*BF!8%;+" MO]UXQ@B$D,'%4?)K\@7[L6)>"-_ FH-\];1I' 3,FZZU.]OQ0NV-ZX:QN1.]U49\5[07#E8![;T&T%ZG'-AGE_JNPY:W)(._U'\*:*^\@!J#;MRK5IO[',0XY.KUA;["%2^&H;NQ5+GI.0)B&E]RZ7*2L&:/+&T+O7@-WX5H$W*LU2& 4'I. M$_^K.5*7M)GGP%!2FUFAS7P%Y7"08:UT@Z+ PBC0NB 3^=I)4"$\5GY^"N$Q M,YY'T;?.! "67>9389+]SK2 3;$4?Z;!K9E0C2@3UOSY$7!\;_2Z];883,#, MT$3A\G%#L^J6@J \%U;@MP4[/U7M(/:R[R>L8NPB3J?C(;NR?3'6HU@#8YEI M"/#%MQ^[NX4PY@YI<=J]/9I%7F=O,49X[-;.V#1@=H@#HP7=/]('.]16@;.T M WBL-HL9XLO"173[+,MY(4S?M04"+?LQ96$((_.GWV\G="D\%W?1CH J2*KA MBU%SW7D.?0>+8FLS)X1G1WF>CE?^YCA#%D4N0XQ0?I\$'\7;['CF1')J.V@E MUR1?U[3W,![0TSB(FO:05:?I<*8+.[CC%,C""-8CXK-GH6:'H3]UZ(L')UK M78B+&L33* Y ^>/X<""C#Z.>-HE#L!'"\*G125H\%O\TXS+E; ^]&-OC4QR4 M4X*57@W,'%BV $9#V+ M;T:GMFK>/WFY7M3KK:/UHCB#SYL=.YANO5O08/:!;1\YPIU8)F=;KYVH&D58 MT>4AJDL8777]2)NK/.SZ@FT^3E<>SRZON<-6O7$19K6=&T9&#;/< MHTYHVR9Z5"S#%E4I$_=HF7(JEKTXR_8 \A)!\-8I0\9__G=;'[AFD9?;/=Z75TO=<9M. !O]B',,?10Z>/>3B.WYR_QP[8\FN2 M- -[A8=0:%]8Z,'VP]&H["S?<*%'T2W$0N6V:-:CHOE@_H] M_MB?NH;2^L$/ON-:33EYUK2'A3-=@,A8@>[B(X6K:$G%6341ZCD&/[@H2?*_ MN(X]<5R00BRLD=H^?(X-LU. K8[GYQRSU(62-DI:.^""^"?3;-?;_@PIJSQ,6DR%;("1ZV*8 _Y?CB (P4V)": MG.HM>OBX,-FY1[Z/RR$.SO)@##%8Z*$_CQYL0041':<%8G^%+^.!:76(V=-" M"*@"]_,(=?^38:62ZTQ+@F-H'#V&?( )B-1+:)Z<_1F1:MG.54.U+%YN"@@;_R'#CIKFR2Q78M\LWC9%, 56PAI-&_BT ^9 7JZG82,/O[K3V'(;VS MW0=[':+'M C$;$X\Q$,.!'R-BNZGMO/TWN/-GU,%CV0'=$ZFQ9WOST+BM177 MM&2,/V[$),&.>>S.04#*+%.&>6J28;@YA?P+<[E-"#X$3RKD_L$^8RH0Q@4* M4!PPGDN(+UZ!O[;@9@E9/1AHX()I"=>1P A0:P?"_L"!9A0_C#-KT]5DJ@VD MT'J%I7HN6DSW/MH2(*H>%HQK_3G8."%846+%<'ABU>HO.-5Q(Z;1V:C],\P- MB7ZZ8RH':*:)+9UID[7FK\#LBFA945V1B?="5BI8#7UD$;^YX9B;,J<>SJ0 M]:@IM]H%A)K G0)]X)!\!%7B$ ;$:C''A+#N[Y5Y[FTP?_?>>S\L7T) MS6)$[\IV9MI/F;P-3M%)2?->0+UJ*FP4DVQX5XJ58 M)%FQ#H;[4?*[$/%-\5*V7+G^FC$>*=%6KNV%J3@[PA(OP"WEE$P@IG#L%%L@T^EB@0H626'6")X> M'A*FV2G2BJOFR(DT^B9?W_&[\!ME9<_>XU4X7_Q]RM>'&/2G=C,-25#FWFCJF6]@!41VE#HHL,Y# MU/G)IR1D@7>+J9F-NM8K46D"+//"GFD>1IBC,++YC"9^$/@/R)ZP7#-@7URX M=+GR$Q1MCGM7$[/I][;CDE4%*S&'1V[%7C+^O1^L?"I[ _MVY8<8D,;G4T88 M<[^P]JZ/TC(=VL: 1' #H\@1_K8K3>[(^8 MO(11__VW84][@R1Q,XK!P*;C!K4O,+>;MS4-C(HWYENB&!IJ%,&?C X MJ].7](QDG_']W/:B%" L,GS G"#231A/%^)U#\"0VH2EVR,V6*836;IB(2XZ MR9 9UW$! \4[Y1*%+JAKOY.# &.:^< 6D1R:+6:43H<7$S_XL0OSHMI7&JB= M9D\Y&^$[,;1("4O;!*-O!*?ZI3@-E$0Q#4^ MIW4R'NT[QA]95:(G.44$/6-S&]@ZNX24/+77)(+$ST ZF+"?+F2=F:C))(FS M\2/29;"DH@F-8CEW_.]D4Y'*?5A^^6S*)A/A8 M#X&PQQ02,JB!>15,>*9J# MZL8*/+@-91_O@I!$]$<\NR/*!^*C/DC^$LV? A-R/H9-A6"QW:Q42!=\OPE8>2)(9[&UHJ.WI(:@]K_R"6P]\73,.F-B O$>W MX;))DSJ,L7K7(:->F _^=N^ &/P6F5"Y,0@\C/^ 1X!4PDU\#YA"BQZ8>R]! M!S8\"#$X!CX#1<; %F=<*21CX&:YU(B4IP!%B[7)GC"4@,2IUBE'N#@-6)T[ MO(:\C>7*YH6!.R;&*Z'F,4U&3E 85#P#0@LU8_@"?,82%1M2DX^ESZF.%PXC MX]J.SEL78,DC!\Q!),17/5F1VED(..%=^ <4BR.]+2K9AHF&\ M D\Z2LH89TBD/B6&L%D/?LH_B0RV**G)(E65S0WQ5WD+U!-+T7&3DG%:ND4Q MES3G(A\#"Y@TB>#^1&RZ\'PL9&-IO94N\=P\[D*5>%:IQ/-1*1DXX4U3-3\555EH(Z8CB&"\-;"?,.<5<1TC-L(K!V)XBAZX"8!"0 M6L@IH/]\&861&HY"F5A_)!DS2;G*,O7DW53A+C/U2S&)NW_N! MC&'&/)(4H$,[5;;<_2WJ!EB./O>5Y,G;ZD=N%A8S"W-4._ M_:\DA;QF=B#RHD,&:G0"8Q>^7(>;&[DBT&3*:?N5*!.G-=ORBG<$PVO"/.>1 M5-Z-!?LUY;%=&7M):DFR+\4[I'KE$5<[U&#/XEEB6Z1Q>UX/"EJ:\\V^O:1G MQI-P&C@K6O"DN2M1Y-S#_48I1G)O)HQY>1\GK?%\"=V <()I;Z][N1CXTWQ^ MV[==,GB^+M#>[04!SI?P7/CJ5"B,.PQ$D_5R#G;XOYV^G\ M5[GYEW7CWH=A?,7[YO#IOV#;$BB09L\8CDRS.QRV!X/QL#TT>TV$ NGW!IU1 M8SP^" JDP)*+_(9GI$M=^^\8(V(1#]"CB%ATQ$WP.:'O!>GP>.2"4L MP?IS5JX,LT[))4FC.?]IPU 8V$K_R[R:-@!C<^; V(:4&HI:XG# :C5R["5@D#"NVK3-,%+@0/>=%0R7:$ M9>6-A!NAM)TK7U@"KR 2R21,>>HX.^;$F<5,=2Q+%N2Z94E#[MUN:ML@KK_6 MO]8U7D;!]Q_W+/,E^L[,NX-O>7KY@=G?\4_[#K.*T=:&U'8L=ZY?6F3%^/9@ M0BWG0?/"!7BF0W&U.8@C$>Z6H?9,;CTI8Y!-.."L3'D&@.+?._=^JS6];%1 MH*9H[06@F9:^YT2RD1;V>FIS7PO=F^PN[98E(HA)R['K+G@ZBS E3"4"=+V$ MSH%-XB8KA3%F#*,.&)5WYCQ=.A7QH50.88^[,\$Z)5QOGI# 2%">0M>)>X0- MQ;3I$T9-\AZ/AF= 0B0+SU,Q0*(C)W-D 53J)&=ER&=*X_*.W;2*+QD9>'JS M]('IR.#7!9O!5Y+,MV:1%4RIBQAF'X*43E4621QGQA!^A5@/75<*JR%6"[U+ MV"@9&R0I./N=$?#(U@TI!!O&T1B0,\M@&-)BR('G5BT1X>CP4C0_?1*P4U:C MY+1#.<"YCNMPD_YV;C!'(IF@HY85GDSQ/N5."9DV'< MLLHU)44@%$1'!8P3T=>49'BV9-BDF9,)!JM35 ?[$2UF1731EULLE(3P:VC! MQ3P!CU4O9)3?@T(7/!X03R,58K'?/#7RN9)Q^N191<]SWN)OR=K7OGR@\"+06+]9&5Z$HLJE2MHGY\ A.VV M^IV1.>R.N^/6J&MU>X.NR:- PU9_V.Z7"A V#0)9=9Y$\D6QT.? GX(&"LK6 M%_F):E!D%JV6!A<(;8)JNC+5*H.%P^;:Z >;QA3*^D19IH#7U-%O:810_%;3 M&%(T5YA9$'#RN,5S,QG":7;55LFJ:6_RP?POL/\R&4D1E_Y#-G M^_*Q\Q+/%)H;#28-Q0&H/8(" 2D64**$^ZP88@)W771SVMB ,/>IOIBZ)=): M\DF2P$V:_0B/#5\J++,'A&=R20:%\62))Z(DN=K$Z! E5$RE6-+<7\(8'1K5M M:%6+N7(_'S=D:GMH6#'LYH( MV=62;@=1V;3.5#-@?&]:O@8%7G2!B *P6"E25B:HFRX"U?6F741<**/T>40G MSW?JY+=""4[)G@6IE:()/*[ MN+[VLCD^DI]L#=N&U>LV>L-1OSGL]=I@F@K+=-AL=9OERD]^QNJ]]^_KVB?R M8-ZGVG[_# W+&K1&G7:O,^[TQQVSIW=:XC &H]EJE^LPAM3V-NK:;Z A76YT M,T(?*)?/,Z:S0-"0P2P[_I=+&*Y'4;7;A!,:!QST1V:HDF8_,+/^H'2.3[ZH M'V.YENTLL=A4H/3QE$,D:J1X@[$?1Q)6,/U)ZO@)XA+":DV3)*-H_A(IHA#O M=.V',':HJ)7>QZM'DV66.2@P1U9D,,*;8D]65*YY164^,;7%H=SQS30MRHH] M?U\N8C\%-XQQTR)'T>KU3+W=,JVFH&"ST>]WGTW!)Z;87IW2_PC8@*F\YU/K MF$:L'V%\4J B%I@KYP9%E.B#J(PH7?O!+ZW3/K7$6S6O2<4 M2"^F>A4UVH)L:YR'DLXIY.0)6_LB_RIT4:Z]5Y;A M\+A3UD=+"V-);B2ZDD>4^ 20;;'4AK.QPU)_33H(9#?Y(27UX68ZNP#&O?9C M#NDBB[D#)CT0KNNY.JEI-TC$VB;]'E@H6Z+X\I,"ZH5;7]>R9>C[=H>[6M0" M#&_[[OD/7EYD/F0[ F<,EMY9)L6R6$.0T%7HP!SM@-./']+!$:*%3*!OB!K\ MU.R;Q6$44&(U>RZO*$BND6BG1 TFCYT@WP>0S0QKW+CD^9KM6EY!T5EZ0>]S M&C@33EM5)AR^N,!EGA:O9I1&3[UU"E^ NI[/T[BM'6YR,DO1+]Z57A'L.6[. MM%ZMO_=KYMB53.-;F!ZXQHL1>8C-QT:QC+_EC?=:CXB1RXA3WC#F4* M7$)%41+FA(H9X,(:02((,I>U7$S("N\9XH+'NIYEVCQ[.\I%$,58"KR?A/;K M#CTVKL;1+X37B- '[AU/^Q(V#'V7[07.URUEMGXM#7%2U%-JIZ#DL$OQLLA M];D%($\JI/,[I-H12-GT@J7]AQ]0I]5<:);D1G+:*=:*01"9\N;O"R4&07*H MIZ^9S9]Q&!]L3(7)\^=SV":[9I3?;ILBE[R,,IEK\DYQ+G? L*!MQFT[_(+/ M.#-8,8DP-WD@G@5URN5[9WF#C)?*< >[556'OH,T,J1(%<4-6XI!)"QUTGU7^P+$L1V]XX<(&;FB'Y]A/R@5,)#V3/< M)^7LYBVUH\0J><,"HNDVPR)\&%2&EUIK!/TCR+:6D!9-9&H3GBC'EUTG^ELV MDF-I&>]6G,>!L. %S6!!)4L.[TG/M4GL/&FA([GSXA4QNOQ+\+7\Y]J^+9?D MB%6_1+OT[F0HM6P=W6:O:09N/E\WF-HRG$8$AA78+;Q"432WWZ$]YZ6-W"$H M;:((##V*X\I8-@XX=X(0>=R=TVFH(!(V*./.%V Z6&$(XB(2W(T\.'71)GR0 M&0FB4C_-HJ=L)ZJ;T6+&_U)9D<^EKJB)X <,B?D]P8_ M'^-)U-K+3R)"8 ^96"&I(7ZK6;'U'NMWK@W&.NML8C$-4QKN!5++K&W4[)LVFE#D\WG9 Q*M$\;YUP8 M^A,'HQ?EF%!'-Y?;7! *T*4475!$-C)P\QB,H7J0@ DD&=ZV+<62Q%(.,3NV M=,11O>DUF1L%^H_$+A0!_(VG9P_4XS(;GAOBV")_ Q21]QT05C5AAJWQ,SV3 M9_GT2?/6W5/F0?HMS8""N'1"6?^2O'Z>FTOFG#(T']^D!14#/+X 3)<[E]7V M55;48% A 3(.;+3FX2^_IHW^W^>:]A\QZ(?T2&Y>@Y$ SPZ2F@ZNZ@:+ #TW MN&/ @IDM7_@I::Y*7O@7%V;V.\.D,$,L67B9]L_P\E_%+3P!E:WN>." D=H' M?V$O[9G6+& /V@<'+7 :_ ?0 M2VB/8P?F%!05 @12^R5?.VF:";?FK>@URP(LYW?WC7C S6?X>",J75PW/3*3 M4&WQQ_#F+4_/TLVB (?$/ETS$[!'%(K^>VR#1QA0L?1F!.^_Y5%%L,()$%U* M54;2C_1"=JIK?Y'8";64,D.6GW!-8,_.$*XSIE0O+#WBDR#.8BX=3,97]I6^ M)[I LD]$[V\51WQM"61VXZ1)W@:2'1!?>6IB0;N*:K7 ML-$X,ZVGPE#"[:& M,5VP(("^_3AT.70G3WXOEV!%\E)/OB'9LX@%*"7/L3#J0>F1N)I#@=GM$[89@)C"R$+U^;/O,LU;.42.A2'&I MF438Q)(Z#I-F+]-^399(MSW"\6'A9UYI;Q#C-L;C)FOQ@$@&VTR";;U0>XEO MA.>2S< M@*'.$:R>YLP2)#T,3S@[*J%+97QW"C.^>_JH-6IUAV;7,%J#?K?9T?O"^+8: MC?9(&=]%E+)1[+]-_Q%,G)>@2:0OZ+YT1/R& M_)E=K_#"T?_\Q_O^^V_:^X_#T?\FF@0P>S?"?(/E5C$:^XN=?Y46; MOS7W_]3)_+;CV:!)(FR:$\/CIH.V4R7=EMP#?R(YU7DJ-G7U@&<2">PGS]"/X2.4K&Q(MOVN[-Z0""[Y; MWCQK=F8/IJ0V*3];N',0)3^*@1HLQB/X&!* M4%-]X50%ZY"FV^*;4JS#TV0.@W]E 2=G:>^B):'K&;#J!O_FBRF_3S" M>OUU?#5%<3X2>?'6#7#DXE2O4UN81_H6 M)O@62EV4@48*5!=&A^KC!G54"/2KT6CJE(B5R.39R^5%7;V5*!([F"#TX>VG M'RY;2QUBZKJI=,BU"=8KFFJ9=A:2K=#VO??H]+__ MZ7_Y3?MF_^#-&R,\.HW*O[].%VQI:T-_&F-=B!++I2%L-54EEI\0RX/>;THL M5W/[GA#+ ]N=R@.*?G.\[Q-LF%)"NG1DKJ:JA/030OJW7E\)Z6INWQ-"^C=[ MPEPEGI7,NJ*I7IQX_OQEI,1S-;?O"?'\F6-J*2-:B:YKF^K%2>GA:*RD=#6W M[PDI/40H:4?):"6XKFRJ%R:C+26?J[EU X(]^&S?,>T]-BW9'&IP:$>V-L8# M7M[P5FIQ])Z3$>?\M#4$59I2*V0DQ3M+Q'NV$1MQ%FQY;H!L7M50O?_KVWT, M\@LU62;?']#X>>!N_VWO_U07ZDNZ4,TGNU!;^SM-N]9+.DTKQ'0O$I85FM>8 MT!T0: %EPZ5KO7^]V&V, P^Q<9[>RC/(YQ?"2)SLC:6"#>EN;-#L8-B03JMO M],:MIFD-6OU>RS+[;0D;TAEV^@JS[V#8D!.,C#YF.\3W5X;?_/GK^[]\['W[ MZY?1U\,.QC',U6G.I\"*GI&3PI'^/K"[A#&V!: T;,8#P'A:+VY@Z7H M@$-Q]!T:J?":"2/X68%F3UNI E(G]G4S1OWKS_4$9H[SY5/_TS=M\.G+YT]?>M_> M?_I8D8BC6="19%6(PZFYJJ#CGG-\[(B]TWKQ71Q&FI$_\KVT0$@'S[:_?G? MY,H%NW7PY'\)?T'LW) 21G;IH8\N75Q=VOQ.0+&*6A6U5H=:4W3U_X>GQ&#I ME#.3YZ?M.;Y>T]X,T2'N)0YQ[M#[SX'C(7ZSNWWG2[,]98JT-?0=8:#_\^^_ M3/S9^L__]]]_641+]\__'U!+ P04 " !@0%/((@TT ( #D+0 %P M &ER8G1E>&AI8FET,S$Q-C(Y,3DN:'1M[5IK;QLW%OV<_ I6Q7830/)HY,2XZLIVMY8V^CK@/$]I"7O)>< M<^Z#P]YW%Y_[5__^9< REROVR[_./W[HLT8KBKX<]J/HXNJ"_73U\T=V=-". MV97AA95.ZH*K*!I\:K!&YES9C:+I='HP/3S09AQ=748TU5&DM+;B('5IX_1E MCYI.7[[H98*G^/VB]UVKQ2YT4N6B<"PQ@CN1LLK*8LR^I,)>LYBU6K>2?5W. MC!QGCG7:\1OV19MK.>%S"2>=$J>#FTP.I>M%X1'*HEI;;ZC3&;-NIL2[QD@7 MKC7BN52S[I7,A66?Q)1=ZIP7;WV?E?\1W;A=NK=D>"HGISW."IYCK!V<= [[ M@Y/XJ#UXWSD^?W-X=OC^O/./'\_;_79\?G;4..U%'/_]J/F/N68E"]'*!"VC M&W?:?]M4UZ.6;8;*(A-&NBTCA@;JJ'FN=4FW[[O7BI*G*;:]-=3.Z;Q[4M[< M-CE=^FCSS$\!-F">Q MOR^,DR.9<"*(_2]60.;&G55[E1@]PFXW3C\TP2%H9C\?L+-BK$23)=[>&7,9 M=]TUC.2*C7B")L-T#K?O=)#; M$"A$(JSE9D8B.;\6T+LTIT5;"F.@4OD, 3I(()$&V07$"@R'):DP;)K))&.V MHA^+\5-A1#T)+2"75B%OH$QD*EV&!=I2)-Y FK>$:3K%,O%FL"G#V?(V/)/C M<;I\V;DS^#-G.R/AB3_/6W MSYL+83$=<.0SD_M!WJ2D*>&5W7T(92]# <#6FD(^I"N#">#*)]+Z $I4?AY MJ"I2%B!#VN8# M9D$S5992*>\PK,^[?#C15L @A_!%@TI.+ZM2G*(@EN6-6*1D&!$2O.6\%'\- M!0DB4&&\2+_]P+1G#!ON'<-V=O(;1-L]/.S,-W!T(E.B$;>Z\-CC%A2DNH6X MQ4TZQSF8)_E0*NEFE*5M4TNL]Y3P: ^$71%=JGM\N+VI%U16J/ MX$I999)H MDWH#? 4T%@621072H4>4Q&820747B 76RQ(1[YE:CTRM9 ^H-9AP57D/3[@3 MHQ%*$#D!8NR64@(YX0ZQ*CQNKRL\AS 0<<:&ZF6H*W>W[EVB*;^5%E2:C>ZO M\]EP7O1YMR#"'M#I&$W^3(/'I4&Z!S2X"#C;Q"N=@]6E@>]9H\,#(@IE9#I) M*D-X7$I_5N;+M75HH>\/*)U(=,O_HZG,V8DM="U:=W:_+-K]B0_:#:?ITR'/\% M3QG\9X]T3L_FPG53)%FFR\*+^R\?NR>)&X40C.(H@YPV]C8C\PV8+,^EE()F_SP5Z 30I&E4(??5(;->2]^JR1,]DROBL0?YKU^/D#X/SQ M.%-([#&A__R,L70NE4@!H-;9U&TA/Q7\FM*CD.C[!,F7*/XSS/Q(^$'PKVON M<):WQ>?S% .MN'7Y6ZA2ES00!NI1>31#=F:1FMDJS[G!4OTRZI"Z]=A\/\+! MGH%_'VK[,R18(P/WV@04A8\% +/_DE>COADR%EE,M)H(2EL*/JX_2)HZ?(B\ M5'HFT#O-=(@9?(53X,!79G '[#YX[KASCW6)9=OUH:\U86G\1D;BQ\LBQ5C_ MO*R@(!ZKU;LP=1;S(-+^$4?7K(5C&9#?6AL1/U:;6_;MA;^W/X*SL/N;0$[LITT:UPW0!*GN 5ZVRW+4.PC M+=$6$4K42,J.[Z^_SR'E=V>Q41>MMQ1H$I&'/(?4\YP7BMT?>I^N;O_XY9JE M+E/LE]\O/[R_8K5&%'T^OHJBWFV/_>?VOQ_8R5&SQ6X-SZUT4N=<1='UQQJK MI'?::S=[K\]ZQZVS MX\OVSZ\O6Z<_7[3;9[7S;L3QWX^:_IAJ5C(7C530,CJM=O.G=75=:MEDJ,Q3 M8:3;,*)OH(Z:IUH7=/N^1ZTH>))@VQM][9S..J?%_:S)Z<(_.W'O&ES)8=[Q M;^'++?>/XV!%7ZL$4U3OCQVWCMK+2]J?]3'0)LQ7,?]*&"<',N;$#\MV7P&9 MVVHOVZO$8 ^;73M_7V<72EJ=LY[@>9W%WM@)\K 0FE*LO>UIHU M_VP+'D^?*^UKQO\5O=CZ2AP@ZI+I;&.9N+1S\AKS$)-<0IW5'Y$771(?T2IB MKJK-@@VUG0@W-9YVN=,,2G?>VM;1"O^"U0_;^.81([_&ZVYTD2@4!4$0#QU6:0O;$W*9LH/383OECQ%!:AVS?,4Z-P6Y865^@@9T: MLV;M$Q/VRX23 V#"[1)L_FTKE%>))CE4/4!VC":"TGO&C?"@!0@E@0'@8L(2 M,*1-29S$,@03"BCTG$@;*VU+C*,P8[0*Z"V,CD6"9LM> *R) /H#(J_OXY3G M0\$NX,%O2@6)UC%OM%Z]$"_]T-:K)#R%1TFU01Y80_,SJPGEH60Q/1BCN&5 E1',4 MUZO019T280:V6*UDXL]U;-FW,I'<2%J #&F;#Y@YS51:2J6\P[ ^[_+A1%L! M@QS"%PTJ.+VL4G&*@EB6-V*>DF%$2/ 6\U+\U1'VOEI04:+"MX K995QK$WB#? 5T%#D2!852(<>41"; M203572 66"\+1+PG:NV96O$!4.MZQ%7I/3SA3@P&*$'D"(BQ&TH)Y(1;Q*KP MN+FN\!S"0,09&ZJ7OB[=P[JWB:9\)BVH-!L\7N>S_K3H\VY!A#V@TS&:_(D& M^Z5!<@ TZ 6.5SL&JTL#WK-!AAXA"&9F.X](0'A?2GZ7Y,FT=6N@C!V:Q MV!;V9SCD92_6A <@$_S[BEQE9@R(^P,[.LO+RYDM+X,E*;>S_) B@R>?2'S( M]*NOPMF$*7DG5'5ZMR)?_X(-.0RJ'=8IPZN_X2F#_^R13.E9G[MNBB2+=)E[ M1L,D/?P$Z(119 M"G7X3678E/?BSU+"9,_T,H_]8=[+IP.$?^ !PH5"8H\)_;=GC*5SJ5@* +7* MIF:%_%CP.TJ/0J+O$R1?HOC/,-,CX9W@7]7=1#=F:1FMDRR[C!4OTRJI"Z\=C\,,+!@8'_$&K["R18 P/W6@<4A8\% M +/_DE>AOAXR%IF/M!H)2EMR/JP^2)HJ?(BL4'HBT#M.=8@9?(E3X, 79G!' M[#%X;KES^[K!LNGJT)>:L#!^+2/QXV6>8*Q_7E20$X_5\D68*HO9B;1_Q=$5 M:^%8AC(/YO'2Z6F#O]X46@)I6TTLO@_')$PCUDKQPHK.](\U2,^9#Q%8F+^M MM6L/$SVH> 4-M35^K?<][BG"):AE_K=7;D0M/E>7IA:;P@:TP^XOO-"O43:! MHAUV40Y+Y&&MNK_:MXO+J59;O9QJ+:WBGOF#9_9CT_\[E-V(;,0N/KS_[=-' MUKN^^/B0N_A6[Y\<&WTC[J0R 8GWL>)__=@Z;6XZ-_P6Z]M+)C:[8?>@7]V# MFJM4B@%[-XLQGT+%\UA\6;D=^IU=J-PU''TMA0] 7 :7)B=&5X M:&EB:70S,C$V,CDQ.2YH=&WM6>MSVC@0_]S^%5MWKI/, 'X0<@FAS! @5VY2 M:(%.KQ^%+;"F0G)M$<+]];>2#2$\+J4E;;AK)B%(VM4^]-N'[,J+1J?>__2N M":$:&VW6Q;8(5* M167;GDZGA6FQ(..1W>_:>JL3FTN9T$*@ JOZO**GJL^?54)* OS_K/(BGX>& M]"=C*A3X,26*!C!)F!C!QX FG\&%?'Y!69?1+&:C4('GN.?P4<:?V0V94RBF M.*TV;T,V8*IBIT,49F?2*@,9S"!1,TY?6T,I5'Y(QHS/RGTVI@FTZ12ZS2 MUB$@0H-OS ZF4')=/H]O%E)*1&2MZJ_*$LY$HFU/X?LW-<)IJ M,9 \P"VR\X.B5W#OF[0_[7U$&XT?Q_%/3\L-3JXWN_W65:M>Z[H5Z 7K-NC'(+9:<0[2DUH-:H_.NWVP<^IG,3^+<.87. M%?3?-*%7ZU[6VLU>OO/7=?,3U.I]O>(YCO=H!G(Z5.F8B0"-+9^<(<$>PKXE MP)="4%]709@R%8(**;R?D!@]RF?0I9&,%>#BE8S'X#KY]R"'P+H2-<'."<8D/\$DWB9$+0+4K"4E+)3EDGE1R@ M T@@(]VF+)//B33>L_U[)!X009-\YY;3&=1\I5H3GD4B:F7MU 7-U=YY\21E&YM$R/5A*?HEECZC,QD)547X"%H'D#KT ]9DI4;P5>WGIM M69Y*'>"EWE\ZT$=(G U,?&6H34:31(%[O^G^FG2?69L=3F:+&]U"@OUQ "\= M\_,HWEAA<3>$[!X<9"WI?6?A0J)HH9<3LLA"S"T]V%T M>@G[!AP<".KO7]ZV)N#'D!QB!X*Y<%[Z+B6) U,FMUP>GSK:YO6IN)^"^*20 M][-L_55D_H=%IG;=ZG7:T&C6VD\-$O^]"I-!R72Y:SAZ]'A8>OCW8VO/QD>, M#UU35U[1_ENSQ3>:SBJW?WE:?5\QKY>H_4$L! A0# M% @ 8$!3Y=V6YGY#0 !9L !$ ( ! &ER8G0M M,C Q.3 V,CDN>'-D4$L! A0#% @ 8$!3\UYB(%C%P $?4 !4 M ( !* X &ER8G0M,C Q.3 V,CE?8V%L+GAM;%!+ 0(4 Q0 ( M &! 4_A$I\&?$, (U5 P 5 " ;XE !IIF 0!I&AI8FET,S$Q M-C(Y,3DN:'1M4$L! A0#% @ 8$!3RD"T:+H!P PBT !< M ( !Q-$" &ER8G1E>&AI8FET,S$R-C(Y,3DN:'1M4$L! A0#% @ M 8$!3[=OG06V!0 L1X !< ( !X=D" &ER8G1E>&AI8FET B,S(Q-C(Y,3DN:'1M4$L%!@ ) D 6P( ,S? @ $! end