<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by EDGARfilings PROfile 4.1.0.0 Copyright 1995 - 2017 Summit Financial Printing, LLC. All rights reserved.-->
<xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2016-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2014-01-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:country="http://xbrl.sec.gov/country/2016-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2016-01-31" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2011-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2016-01-31" xmlns:tact="http://transact-tech.com/20170630" xmlns="http://www.xbrl.org/2003/instance">
  <link:schemaRef xlink:type="simple" xlink:href="tact-20170630.xsd" />
  <xbrli:context id="c20170101to20170630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20160630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20161031">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-10-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20161231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20160101to20160331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2016-01-01</xbrli:startDate>
      <xbrli:endDate>2016-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170401to20170630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-04-01</xbrli:startDate>
      <xbrli:endDate>2017-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20160101to20160630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2016-01-01</xbrli:startDate>
      <xbrli:endDate>2016-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20151231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2015-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170101to20170630_RangeAxis_MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RangeAxis">us-gaap:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20160101to20160331_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2016-01-01</xbrli:startDate>
      <xbrli:endDate>2016-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170401to20170630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-04-01</xbrli:startDate>
      <xbrli:endDate>2017-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170101to20170630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20160101to20160630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2016-01-01</xbrli:startDate>
      <xbrli:endDate>2016-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:unit id="U001">
    <xbrli:measure>iso4217:USD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U002">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U003">
    <xbrli:divide>
      <xbrli:unitNumerator>
        <xbrli:measure>iso4217:USD</xbrli:measure>
      </xbrli:unitNumerator>
      <xbrli:unitDenominator>
        <xbrli:measure>xbrli:shares</xbrli:measure>
      </xbrli:unitDenominator>
    </xbrli:divide>
  </xbrli:unit>
  <xbrli:unit id="U004">
    <xbrli:measure>xbrli:pure</xbrli:measure>
  </xbrli:unit>
  <!--Amendment Flag-->
  <dei:AmendmentFlag contextRef="c20170101to20170630">false</dei:AmendmentFlag>
  <!--Current Fiscal Year End Date-->
  <dei:CurrentFiscalYearEndDate contextRef="c20170101to20170630">--12-31</dei:CurrentFiscalYearEndDate>
  <!--Document Period End Date-->
  <dei:DocumentPeriodEndDate contextRef="c20170101to20170630">2017-06-30</dei:DocumentPeriodEndDate>
  <!--Entity Well-known Seasoned Issuer-->
  <dei:EntityWellKnownSeasonedIssuer contextRef="c20170101to20170630">No</dei:EntityWellKnownSeasonedIssuer>
  <!--Entity Voluntary Filers-->
  <dei:EntityVoluntaryFilers contextRef="c20170101to20170630">No</dei:EntityVoluntaryFilers>
  <!--Entity Current Reporting Status-->
  <dei:EntityCurrentReportingStatus contextRef="c20170101to20170630">Yes</dei:EntityCurrentReportingStatus>
  <!--Entity Filer Category-->
  <dei:EntityFilerCategory contextRef="c20170101to20170630">Smaller Reporting Company</dei:EntityFilerCategory>
  <!--Entity Public Float-->
  <dei:EntityPublicFloat contextRef="c20160630" unitRef="U001" decimals="0">0</dei:EntityPublicFloat>
  <!--Entity Registrant Name-->
  <dei:EntityRegistrantName contextRef="c20170101to20170630">TRANSACT TECHNOLOGIES INC</dei:EntityRegistrantName>
  <!--Entity Central Index Key-->
  <dei:EntityCentralIndexKey contextRef="c20170101to20170630">0001017303</dei:EntityCentralIndexKey>
  <!--Entity Common Stock, Shares Outstanding-->
  <dei:EntityCommonStockSharesOutstanding contextRef="c20161031" unitRef="U002" decimals="INF">0</dei:EntityCommonStockSharesOutstanding>
  <!--Document Fiscal Year Focus-->
  <dei:DocumentFiscalYearFocus contextRef="c20170101to20170630">2017</dei:DocumentFiscalYearFocus>
  <!--Document Fiscal Period Focus-->
  <dei:DocumentFiscalPeriodFocus contextRef="c20170101to20170630">Q2</dei:DocumentFiscalPeriodFocus>
  <!--Document Type-->
  <dei:DocumentType contextRef="c20170101to20170630">10-Q</dei:DocumentType>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent contextRef="c20161231" unitRef="U001" decimals="-3">4894000</us-gaap:AccountsPayableCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent contextRef="c20170630" unitRef="U001" decimals="-3">3421000</us-gaap:AccountsPayableCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent contextRef="c20161231" unitRef="U001" decimals="-3">2394000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent contextRef="c20170630" unitRef="U001" decimals="-3">2380000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="c20161231" unitRef="U001" decimals="-3">19000</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="c20170630" unitRef="U001" decimals="-3">0</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Fixed assets, accumulated depreciation-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c20170630" unitRef="U001" decimals="-3">19404000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Fixed assets, accumulated depreciation-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c20161231" unitRef="U001" decimals="-3">19215000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Treasury stock, 3,851,967 and 3,388,589 shares, at cost-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c20170630" unitRef="U001" decimals="-3">-102000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Treasury stock, 3,851,967 and 3,388,589 shares, at cost-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c20161231" unitRef="U001" decimals="-3">-109000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c20170630" unitRef="U001" decimals="-3">29996000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c20161231" unitRef="U001" decimals="-3">29701000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Reversal of deferred tax asset in connection with stock options forfeited-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-99000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c20170101to20170630" unitRef="U001" decimals="-3">296000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c20160101to20160331_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3">827000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c20170401to20170630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3">407000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c20170101to20170630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3">732000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c20160101to20160630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3">827000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Assets-->
  <us-gaap:Assets contextRef="c20161231" unitRef="U001" decimals="-3">32042000</us-gaap:Assets>
  <!--Assets-->
  <us-gaap:Assets contextRef="c20170630" unitRef="U001" decimals="-3">31474000</us-gaap:Assets>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">8788000</us-gaap:AssetsNoncurrent>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">8875000</us-gaap:AssetsNoncurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent contextRef="c20161231" unitRef="U001" decimals="-3">23167000</us-gaap:AssetsCurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent contextRef="c20170630" unitRef="U001" decimals="-3">22686000</us-gaap:AssetsCurrent>
  <!--Business Description and Basis of Presentation [Text Block]-->
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;1. Basis of presentation&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The accompanying unaudited financial statements of TransAct Technologies Incorporated ("the Company") have been prepared in accordance with accounting principles generally accepted in the United States of America for interim financial information.&amp;#160;&amp;#160;Accordingly, they do not include all of the information and footnotes required by accounting principles generally accepted in the United States of America to be included in full year financial statements.&amp;#160;&amp;#160;In the opinion of management, all adjustments considered necessary for a fair statement of the results for the periods presented have been included and are of a normal recurring nature.&amp;#160;&amp;#160;The December 31, 2016 Condensed Consolidated Balance Sheet data was derived from audited financial statements, but does not include all disclosures required by accounting principles generally accepted in the United States of America.&amp;#160;&amp;#160;These interim financial statements should be read in conjunction with the audited financial statements for the year ended December 31, 2016 included in our Annual Report on Form 10-K.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The financial position and results of operations of our U.K. subsidiary are measured using local currency as the functional currency.&amp;#160;&amp;#160;Assets and liabilities of such subsidiary have been translated at the end of period exchange rates, and related revenues and expenses have been translated at the weighted average exchange rates with the resulting translation gain or loss recorded in accumulated other comprehensive income (loss) in the Condensed Consolidated Balance Sheets.&amp;#160;&amp;#160;Transaction gains and losses are included in other income (expenses) in the Condensed Consolidated Statements of Income.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The results of operations for the three and six months ended June 30, 2017 are not necessarily indicative of the results to be expected for the full year.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
  <!--Capital expenditures funded by accounts payable-->
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c20160101to20160630" unitRef="U001" decimals="-3">86000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--Capital expenditures funded by accounts payable-->
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c20170101to20170630" unitRef="U001" decimals="-3">165000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20170630" unitRef="U001" decimals="-3">4877000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20161231" unitRef="U001" decimals="-3">2503000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20151231" unitRef="U001" decimals="-3">4473000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20160630" unitRef="U001" decimals="-3">2555000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and Cash Equivalents, Period Increase (Decrease)-->
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="c20170101to20170630" unitRef="U001" decimals="-3">2374000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <!--Cash and Cash Equivalents, Period Increase (Decrease)-->
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-1918000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid contextRef="c20170401to20170630" unitRef="U003" decimals="INF">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid contextRef="c20170101to20170630" unitRef="U003" decimals="INF">0.17</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid contextRef="c20160101to20160331" unitRef="U003" decimals="INF">0.08</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid contextRef="c20160101to20160630" unitRef="U003" decimals="INF">0.16</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued contextRef="c20170630" unitRef="U002" decimals="INF">11215894</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued contextRef="c20161231" unitRef="U002" decimals="INF">11185331</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized contextRef="c20161231" unitRef="U002" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized contextRef="c20170630" unitRef="U002" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, $0.01 par value, 20,000,000 shares authorized; 11,185,331 and 11,170,881 shares issued, respectively; 7,383,364 and 7,782,292 shares outstanding, respectively-->
  <us-gaap:CommonStockValue contextRef="c20170630" unitRef="U001" decimals="-3">112000</us-gaap:CommonStockValue>
  <!--Common stock, $0.01 par value, 20,000,000 shares authorized; 11,185,331 and 11,170,881 shares issued, respectively; 7,383,364 and 7,782,292 shares outstanding, respectively-->
  <us-gaap:CommonStockValue contextRef="c20161231" unitRef="U001" decimals="-3">112000</us-gaap:CommonStockValue>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="c20161231" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="c20170630" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding contextRef="c20161231" unitRef="U002" decimals="INF">7333364</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding contextRef="c20170630" unitRef="U002" decimals="INF">7363927</us-gaap:CommonStockSharesOutstanding>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c20160101to20160331" unitRef="U001" decimals="-3">739000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c20170401to20170630" unitRef="U001" decimals="-3">872000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c20170101to20170630" unitRef="U001" decimals="-3">1817000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c20160101to20160630" unitRef="U001" decimals="-3">1360000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Cost of sales-->
  <us-gaap:CostOfGoodsSold contextRef="c20160101to20160331" unitRef="U001" decimals="-3">8818000</us-gaap:CostOfGoodsSold>
  <!--Cost of sales-->
  <us-gaap:CostOfGoodsSold contextRef="c20170401to20170630" unitRef="U001" decimals="-3">7166000</us-gaap:CostOfGoodsSold>
  <!--Cost of sales-->
  <us-gaap:CostOfGoodsSold contextRef="c20170101to20170630" unitRef="U001" decimals="-3">15070000</us-gaap:CostOfGoodsSold>
  <!--Cost of sales-->
  <us-gaap:CostOfGoodsSold contextRef="c20160101to20160630" unitRef="U001" decimals="-3">17290000</us-gaap:CostOfGoodsSold>
  <!--Deferred revenue-->
  <us-gaap:DeferredRevenueCurrent contextRef="c20170630" unitRef="U001" decimals="-3">215000</us-gaap:DeferredRevenueCurrent>
  <!--Deferred revenue-->
  <us-gaap:DeferredRevenueCurrent contextRef="c20161231" unitRef="U001" decimals="-3">117000</us-gaap:DeferredRevenueCurrent>
  <!--Deferred income tax provision-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-56000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred income tax provision-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c20160101to20160630" unitRef="U001" decimals="-3">170000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit contextRef="c20161231" unitRef="U001" decimals="-3">178000</us-gaap:DeferredRentCredit>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit contextRef="c20170630" unitRef="U001" decimals="-3">190000</us-gaap:DeferredRentCredit>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:DeferredRevenueNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">67000</us-gaap:DeferredRevenueNoncurrent>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:DeferredRevenueNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">74000</us-gaap:DeferredRevenueNoncurrent>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">3484000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">3432000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization contextRef="c20160101to20160630" unitRef="U001" decimals="-3">643000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization contextRef="c20170101to20170630" unitRef="U001" decimals="-3">602000</us-gaap:DepreciationAndAmortization>
  <!--Dividends, Common Stock, Cash-->
  <us-gaap:DividendsCommonStockCash contextRef="c20170101to20170630" unitRef="U001" decimals="-3">1250000</us-gaap:DividendsCommonStockCash>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20170401to20170630" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20160101to20160331" unitRef="U003" decimals="2">0.10</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20170101to20170630" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20160101to20160630" unitRef="U003" decimals="2">0.18</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20160101to20160331" unitRef="U003" decimals="2">0.10</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20170401to20170630" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20170101to20170630" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20160101to20160630" unitRef="U003" decimals="2">0.18</us-gaap:EarningsPerShareDiluted>
  <!--Earnings per share-->
  <us-gaap:EarningsPerShareTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;4. Earnings per share&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The following table sets forth the reconciliation of basic weighted average shares outstanding and diluted weighted average shares outstanding:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Three Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Six Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="14" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands, except per share data)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Net income&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;867&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;753&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,810&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,378&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Shares:&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Basic:&amp;#160;&amp;#160;Weighted average common shares outstanding&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,408&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,689&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,402&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,761&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Add:&amp;#160;&amp;#160;Dilutive effect of outstanding options and restricted stock units as determined by the&amp;#160;treasury stock method&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;106&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;54&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;67&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;52&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 27pt; line-height: 11.4pt; text-indent: -27pt;"&gt;Diluted:&amp;#160;&amp;#160;Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,514&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,743&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,469&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,813&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Net income per common share:&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 18pt; line-height: 11.4pt;"&gt;Basic&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.12&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.10&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 18pt; line-height: 11.4pt;"&gt;Diluted&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.12&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.10&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options and restricted stock units, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&amp;#160;&amp;#160;These outstanding stock awards are not included in the computation of diluted earnings per share because the effect would be anti-dilutive.&amp;#160;&amp;#160;For the three months ended June 30, 2017 and 2016, there were 407,000 and 827,000, respectively, of potentially dilutive shares consisting of stock awards that were excluded from the calculation of earnings per diluted share.&amp;#160;&amp;#160;For the six months ended June 30, 2017 and 2016, there were 732,000 and 827,000, respectively, of potentially dilutive shares consisting of stock awards that were excluded from the calculation of earnings per diluted share.&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-5000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-12000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20170401to20170630" unitRef="U004" decimals="3">0.331</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20170101to20170630" unitRef="U004" decimals="3">0.329</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20160101to20160331" unitRef="U004" decimals="2">0.32</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20160101to20160630" unitRef="U004" decimals="3">0.326</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Incremental tax benefits on stock options exercised-->
  <us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-18000</us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities>
  <!--Incremental tax benefits on stock options exercised-->
  <us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities contextRef="c20160101to20160630" unitRef="U001" decimals="-3">0</us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued contextRef="c20170101to20170630" unitRef="U001" decimals="-3">105000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued contextRef="c20160101to20160630" unitRef="U001" decimals="-3">131000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Accrued product warranty liability, long-term-->
  <us-gaap:ExtendedProductWarrantyAccrualNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">81000</us-gaap:ExtendedProductWarrantyAccrualNoncurrent>
  <!--Accrued product warranty liability, current-->
  <us-gaap:ExtendedProductWarrantyAccrualCurrent contextRef="c20170630" unitRef="U001" decimals="-3">168000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20151231" unitRef="U001" decimals="-3">277000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20161231" unitRef="U001" decimals="-3">267000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20170630" unitRef="U001" decimals="-3">249000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20160630" unitRef="U001" decimals="-3">272000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments contextRef="c20170101to20170630" unitRef="U001" decimals="-3">123000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments contextRef="c20160101to20160630" unitRef="U001" decimals="-3">136000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c20161231" unitRef="U001" decimals="-3">3122000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c20170630" unitRef="U001" decimals="-3">3281000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-9000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c20160101to20160630" unitRef="U001" decimals="-3">12000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--Gain (Loss) on Disposition of Property Plant Equipment-->
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c20160101to20160630" unitRef="U001" decimals="-3">5000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <!--Gain (Loss) on Disposition of Property Plant Equipment-->
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c20170101to20170630" unitRef="U001" decimals="-3">0</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20160101to20160331" unitRef="U001" decimals="-3">1935000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">4082000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">2070000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20160101to20160630" unitRef="U001" decimals="-3">3852000</us-gaap:GeneralAndAdministrativeExpense>
  <!--Goodwill-->
  <us-gaap:Goodwill contextRef="c20161231" unitRef="U001" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Goodwill-->
  <us-gaap:Goodwill contextRef="c20170630" unitRef="U001" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20160101to20160331" unitRef="U001" decimals="-3">5983000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20170401to20170630" unitRef="U001" decimals="-3">6430000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20170101to20170630" unitRef="U001" decimals="-3">12523000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20160101to20160630" unitRef="U001" decimals="-3">11868000</us-gaap:GrossProfit>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="c20170401to20170630" unitRef="U001" decimals="-3">1296000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="c20170101to20170630" unitRef="U001" decimals="-3">2698000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="c20160101to20160630" unitRef="U001" decimals="-3">2044000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="c20160101to20160331" unitRef="U001" decimals="-3">1108000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income taxes-->
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;6. Income taxes&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;We recorded an income tax provision for the second quarter of 2017 of $429,000 at an effective tax rate of 33.1%, compared to an income tax provision during the second quarter of 2016 of $355,000 at an effective tax rate of 32.0%.&amp;#160;&amp;#160;For the six months ended June 30, 2017, we recorded an income tax provision of $888,000 at an effective tax rate of 32.9%, compared to an income tax provision during the six months ended June 30, 2016 of $666,000 at an effective tax rate of 32.6%.&amp;#160;&amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;We are subject to U.S. federal income tax, as well as income tax in certain state and foreign jurisdictions.&amp;#160;&amp;#160;We have substantially concluded all U.S. federal income tax, state and local, and foreign tax regulatory examination matters through 2012.&amp;#160;&amp;#160;During 2013, an examination of our 2010 federal tax return was completed.&amp;#160;&amp;#160;However, our federal tax returns for the years 2013 through 2015 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as well, though we believe that any additional assessment would be immaterial to the Condensed Consolidated Financial Statements.&amp;#160;&amp;#160;No state or foreign tax jurisdiction income tax returns are currently under examination. As of June 30, 2017, we had $111,000 of total gross unrecognized tax benefits that, if recognized, would favorably affect the effective income tax rate in any future periods.&amp;#160;We expect $31,000 of our&amp;#160; $111,000 of unrecognized tax benefits will reverse in 2017 upon expiration of the statute of limitations.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;We recognize interest and penalties related to uncertain tax positions in the income tax provision.&amp;#160; As of June 30, 2017, we have $25,000 of accrued interest and penalties related to uncertain tax positions.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20170101to20170630" unitRef="U001" decimals="-3">888000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20170401to20170630" unitRef="U001" decimals="-3">429000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20160101to20160331" unitRef="U001" decimals="-3">355000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20160101to20160630" unitRef="U001" decimals="-3">666000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Prepaid income taxes-->
  <us-gaap:IncomeTaxesReceivable contextRef="c20170630" unitRef="U001" decimals="-3">210000</us-gaap:IncomeTaxesReceivable>
  <!--Prepaid income taxes-->
  <us-gaap:IncomeTaxesReceivable contextRef="c20161231" unitRef="U001" decimals="-3">0</us-gaap:IncomeTaxesReceivable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c20160101to20160630" unitRef="U001" decimals="-3">1871000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-1527000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-1272000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-28000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-189000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-2273000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Income Taxes Receivable-->
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="c20160101to20160630" unitRef="U001" decimals="-3">205000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <!--Increase (Decrease) in Income Taxes Receivable-->
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="c20170101to20170630" unitRef="U001" decimals="-3">209000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <!--Increase (Decrease) in Receivables-->
  <us-gaap:IncreaseDecreaseInReceivables contextRef="c20160101to20160630" unitRef="U001" decimals="-3">3203000</us-gaap:IncreaseDecreaseInReceivables>
  <!--Increase (Decrease) in Receivables-->
  <us-gaap:IncreaseDecreaseInReceivables contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-3184000</us-gaap:IncreaseDecreaseInReceivables>
  <!--Increase (Decrease) in Other Operating Assets-->
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="c20160101to20160630" unitRef="U001" decimals="-3">45000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Increase (Decrease) in Other Operating Assets-->
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="c20170101to20170630" unitRef="U001" decimals="-3">299000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Add: Dilutive effect of outstanding options as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="c20160101to20160331" unitRef="U002" decimals="-3">54000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="c20170401to20170630" unitRef="U002" decimals="-3">106000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="c20170101to20170630" unitRef="U002" decimals="-3">67000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="c20160101to20160630" unitRef="U002" decimals="-3">52000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Intangible assets, net of accumulated amortization of $3,024, and $2,779, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c20170630" unitRef="U001" decimals="-3">386000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Intangible assets, net of accumulated amortization of $3,024, and $2,779, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c20161231" unitRef="U001" decimals="-3">545000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-16000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20160101to20160331" unitRef="U001" decimals="-3">-7000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20170401to20170630" unitRef="U001" decimals="-3">-8000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-11000</us-gaap:InterestIncomeExpenseNet>
  <!--Inventories-->
  <us-gaap:InventoryNet contextRef="c20161231" unitRef="U001" decimals="-3">9707000</us-gaap:InventoryNet>
  <!--Inventories-->
  <us-gaap:InventoryNet contextRef="c20170630" unitRef="U001" decimals="-3">9521000</us-gaap:InventoryNet>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c20170630" unitRef="U001" decimals="-3">2504000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c20161231" unitRef="U001" decimals="-3">3401000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Inventory Disclosure [Text Block]-->
  <us-gaap:InventoryDisclosureTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;2. Inventories, net&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The components of inventories, net are:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;June 30, &lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;December 31, &lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,010&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;6,298&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Work-in-process&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;8&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Finished goods&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;2,504&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;3,401&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;9,521&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;9,707&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <!--Work-in-process-->
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c20170630" unitRef="U001" decimals="-3">7000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <!--Work-in-process-->
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c20161231" unitRef="U001" decimals="-3">8000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves contextRef="c20161231" unitRef="U001" decimals="-3">6298000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves contextRef="c20170630" unitRef="U001" decimals="-3">7010000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Liabilities-->
  <us-gaap:Liabilities contextRef="c20161231" unitRef="U001" decimals="-3">7933000</us-gaap:Liabilities>
  <!--Liabilities-->
  <us-gaap:Liabilities contextRef="c20170630" unitRef="U001" decimals="-3">6534000</us-gaap:Liabilities>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c20161231" unitRef="U001" decimals="-3">32042000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c20170630" unitRef="U001" decimals="-3">31474000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent contextRef="c20161231" unitRef="U001" decimals="-3">7424000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent contextRef="c20170630" unitRef="U001" decimals="-3">6016000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">518000</us-gaap:LiabilitiesNoncurrent>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">509000</us-gaap:LiabilitiesNoncurrent>
  <!--Net Cash Provided by (Used in) Investing Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-322000</us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations>
  <!--Net Cash Provided by (Used in) Investing Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-409000</us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations>
  <!--Net Cash Provided by (Used in) Financing Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivitiesContinuingOperations contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-3482000</us-gaap:NetCashProvidedByUsedInFinancingActivitiesContinuingOperations>
  <!--Net Cash Provided by (Used in) Financing Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivitiesContinuingOperations contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-1183000</us-gaap:NetCashProvidedByUsedInFinancingActivitiesContinuingOperations>
  <!--Net Cash Provided by (Used in) Operating Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations contextRef="c20160101to20160630" unitRef="U001" decimals="-3">1898000</us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations>
  <!--Net Cash Provided by (Used in) Operating Activities, Continuing Operations-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations contextRef="c20170101to20170630" unitRef="U001" decimals="-3">3971000</us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20170401to20170630" unitRef="U001" decimals="-3">867000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20160101to20160331" unitRef="U001" decimals="-3">753000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20170101to20170630" unitRef="U001" decimals="-3">1810000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20160101to20160630" unitRef="U001" decimals="-3">1378000</us-gaap:NetIncomeLoss>
  <!--New Accounting Pronouncements and Changes in Accounting Principles [Text Block]-->
  <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: left; line-height: 11.4pt;"&gt;7. Accounting pronouncements&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;The following accounting pronouncements will be adopted in future reporting periods:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In May 2014, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") 2014-09, "Revenue from Contracts with Customers." This ASU is intended to clarify the principles for recognizing revenue by removing inconsistencies in revenue requirements; providing a more robust framework for addressing revenue issues; improving comparability of revenue recognition practices across entities, industries, jurisdictions and capital markets; and providing more useful information to users of financial statements through improved revenue disclosure requirements. In applying the amended guidance, an entity will (1) identify the contract(s) with a customer; (2) identify the performance obligations in the contract; (3) determine the transaction price; (4) allocate the transaction price to the contract's performance obligations; and (5) recognize revenue when (or as) the entity satisfies a performance obligation. Entities have the option of using either a full retrospective approach or modified retrospective approach to adopt the amended guidance.&amp;#160; The amended guidance applies to all contracts with customers except those that are within the scope of other topics in the FASB Accounting Standards Codification.&amp;#160; We are currently evaluating the impact this ASU may have on our consolidated financial position, results of operations or cash flows.&amp;#160; During the first quarter of 2017 we engaged a national accounting firm to assist management in implementing the new standard.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;We have developed a project plan to review our revenue streams and determine the impact of the new standard, if any, to each revenue stream.&amp;#160; We have made significant progress on our project plan but have not finalized our evaluation on whether the new standard will result in changes to our revenue recognition policies.&amp;#160; During the remainder of the year we will continue to evaluate the potential impact, and if needed, establish policies, identify system impacts, integrate the standard into the financial reporting processes and systems, and develop an understanding of the financial impact of this standard on the Company's consolidated financial statements. The Company currently anticipates adopting the amended guidance using the modified retrospective transition approach, with any cumulative effect of initially adopting this standard recognized through retained earnings at the date of adoption.&amp;#160; The provisions of this standard are effective for interim and annual periods beginning after December 15, 2017.&amp;#160; We will adopt the amended guidance on January 1, 2018 at which time it becomes effective for the Company.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In February&amp;#160;2016, the FASB&amp;#160;issued ASU&amp;#160;No. 2016-02, &lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;Leases (Topic 842&lt;/font&gt;), which sets out the principles for the recognition, measurement, presentation and disclosure of leases for both parties to a contract (i.e., lessees and lessors).&amp;#160; The new standard requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee.&amp;#160; This classification will determine whether lease expense is recognized based on an effective interest method or on a straight-line basis over the term of the lease, respectively.&amp;#160; A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&amp;#160; Leases with a term of 12 months or less will be accounted for similar to existing guidance for operating leases today.&amp;#160; ASU&amp;#160;2016-02 supersedes the previous leases standard, ASC&amp;#160;840, &lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;Leases&lt;/font&gt;, and is effective for public entities for annual periods beginning after December&amp;#160;15, 2018 and for interim periods within those fiscal years.&amp;#160; Early adoption is permitted.&amp;#160; The Company is currently evaluating the impact that the adoption of ASU&amp;#160;2016-02 will have on its financial statements.&amp;#160; &lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In January 2017, the FASB issued ASU 2017-04, &lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;Intangibles - Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&lt;/font&gt;. This ASU eliminates Step 2 of the current goodwill impairment test, which requires a hypothetical purchase price allocation to measure goodwill impairment. A goodwill impairment loss will instead be measured at the amount by which a reporting unit's carrying value exceeds its fair value, not to exceed the recorded amount of goodwill. The provisions of this standard are effective for years beginning after December 15, 2019, with early adoption permitted for any impairment test performed on testing dates after January 1, 2017. The Company is currently evaluating the impact that the adoption of ASU 2017-04 will have on its financial statements.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12pt; font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 12pt;"&gt;In May&amp;#160;2017, the FASB&amp;#160;issued ASU&amp;#160;No. 2017-09, "Compensation-Stock Compensation: Scope of modification accounting".&amp;#160; ASU&amp;#160;2017-09 provides guidance about which changes to the terms or conditions of a share-based payment award require an entity to apply modification accounting in Topic 718.&amp;#160; ASU&amp;#160;No. 2017-09 is effective for fiscal years beginning after December&amp;#160;15, 2017, with early adoption permitted, including during an interim period for which financial statements have not yet been made available for issuance.&amp;#160; The amendments should be applied prospectively to an award modified on or after the adoption date.&amp;#160; The Company is -currently evaluating the impact that the adoption of ASU&amp;#160;2017-09 will have on its financial statements.&lt;/div&gt;&lt;div style="margin-bottom: 12pt; font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 12pt;"&gt;&amp;#160;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The following accounting pronouncements were adopted during 2017:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In July 2015, FASB issued ASU 2015-11, "Simplifying the Measurement of Inventory." This ASU changes the measurement principle for inventory from the lower of cost or market to lower of cost or net realizable value. Net realizable value is defined as the estimated selling prices in the ordinary course of business less reasonably predictable costs of completion, disposal and transportation. The provisions of this ASU became effective for years beginning after December 15, 2016.&amp;#160; The Company adopted this guidance in the first quarter of 2017 and the adoption has not resulted in a change to the value of inventory.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In March 2016, the FASB issued ASU 2016-09, "Compensation-Stock Compensation: Improvements to Employee Share-Based Payment Accounting."&amp;#160;&amp;#160; This ASU is intended to simplify several aspects of the accounting for share based payment transactions. The amended guidance requires that all tax effects related to share-based payments are recorded at settlement (or expiration) through the income statement, rather than through equity. Cash flows related to excess tax benefits will no longer be separately classified as a financing activity apart from other income tax cash flows. The amended guidance also allows for an employer to repurchase additional employee shares for tax withholding purposes without requiring liability accounting and clarifies that all cash payments made to tax authorities on an employee's behalf for withheld shares should be presented as a financing activity on the Consolidated Statements of Cash Flows. This ASU became effective for years beginning after December 15, 2016, and interim periods within those fiscal years, beginning after December 15, 2016.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The Company adopted ASU 2016-09 in the first quarter of 2017.&amp;#160; This adoption required the Company to reflect any adjustments as of January 1, 2017, the beginning of the annual period that includes the interim period of adoption.&amp;#160; There was no impact during the first six months of 2017 upon adopting the standard, as we had no stock options exercised that required us to recognize an excess tax benefit in the provision for income taxes.&amp;#160; In the first six months of 2016, there were 3,750 options exercised that required $1,000 of excess tax benefits to be recorded in additional paid-in-capital, as was required pursuant to the prior accounting guidance.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;In connection with the adoption of ASU 2016-09, in the first quarter of 2017, the Company made an accounting policy election to no longer estimate forfeitures expected to occur to determine the amount of compensation cost to be recognized in each period.&amp;#160; This election required the cumulative effect of the change to be recorded to retained earnings.&amp;#160; As of January 1, 2017, we recorded $31,000 to decrease retained earnings and increase additional paid-in capital for the difference between the amount of compensation cost previously recorded and the amount that would have been recorded without assuming forfeitures.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The presentation requirements for cash flows related to excess tax benefits and employee taxes paid for withheld shares were applied retrospectively to all periods presented. This resulted in an increase in both net cash provided by operating activities and net cash used by financing activities of $18,000 for the first six months of 2017, respectively. &amp;#160;&amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt; &amp;#160;&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20170101to20170630" unitRef="U001" decimals="-3">9801000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20170401to20170630" unitRef="U001" decimals="-3">5124000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20160101to20160331" unitRef="U001" decimals="-3">4883000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20160101to20160630" unitRef="U001" decimals="-3">9829000</us-gaap:OperatingExpenses>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20170401to20170630" unitRef="U001" decimals="-3">1306000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20170101to20170630" unitRef="U001" decimals="-3">2722000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20160101to20160331" unitRef="U001" decimals="-3">1100000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20160101to20160630" unitRef="U001" decimals="-3">2039000</us-gaap:OperatingIncomeLoss>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c20170101to20170630" unitRef="U001" decimals="-3">7000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c20160101to20160331" unitRef="U001" decimals="-3">-14000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c20170401to20170630" unitRef="U001" decimals="-3">5000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c20160101to20160630" unitRef="U001" decimals="-3">-18000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent contextRef="c20170630" unitRef="U001" decimals="-3">674000</us-gaap:OtherAssetsCurrent>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent contextRef="c20161231" unitRef="U001" decimals="-3">372000</us-gaap:OtherAssetsCurrent>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">35000</us-gaap:OtherAssetsNoncurrent>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">36000</us-gaap:OtherAssetsNoncurrent>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-8000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20160101to20160331" unitRef="U001" decimals="-3">15000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">-2000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20160101to20160630" unitRef="U001" decimals="-3">16000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="c20161231" unitRef="U001" decimals="-3">264000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="c20170630" unitRef="U001" decimals="-3">254000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c20170101to20170630" unitRef="U001" decimals="-3">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c20160101to20160630" unitRef="U001" decimals="-3">2273000</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock contextRef="c20160101to20160630" unitRef="U001" decimals="-3">1232000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock contextRef="c20170101to20170630" unitRef="U001" decimals="-3">1250000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock contextRef="c20160101to20160331" unitRef="U001" decimals="-3">609000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock contextRef="c20170401to20170630" unitRef="U001" decimals="-3">663000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c20170101to20170630" unitRef="U001" decimals="-3">409000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c20160101to20160630" unitRef="U001" decimals="-3">330000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Proceeds from sale of fixed assets-->
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c20160101to20160630" unitRef="U001" decimals="-3">8000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <!--Proceeds from sale of fixed assets-->
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c20170101to20170630" unitRef="U001" decimals="-3">0</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <!--Proceeds from stock option exercises-->
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="c20160101to20160630" unitRef="U001" decimals="-3">23000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from stock option exercises-->
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="c20170101to20170630" unitRef="U001" decimals="-3">85000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Accrued product warranty liability-->
  <us-gaap:ProductWarrantyDisclosureTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;3. Accrued product warranty liability&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;We generally warrant our products for up to&amp;#160;24 months and record the estimated cost of such product warranties at the time the sale is recorded. Estimated warranty costs are based upon actual past experience of product repairs and the related estimated cost of labor and material to make the necessary repairs.&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The following table summarizes the activity recorded in the accrued product warranty liability during the six months ended June 30, 2017 and 2016:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Six Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;267&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;277&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Warranties issued&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;105&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;131&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Warranty settlements&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(123&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(136&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;249&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;272&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;As of June 30, 2017, $168,000 of the accrued product warranty liability is classified as current in "Accrued liabilities" in the Condensed Consolidated Balance Sheets and the remaining $81,000 is classified as long-term in "Other liabilities".&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
  <!--Fixed assets, net of accumulated depreciation of $18,991 and $18,336, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="c20170630" unitRef="U001" decimals="-3">2262000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Fixed assets, net of accumulated depreciation of $18,991 and $18,336, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="c20161231" unitRef="U001" decimals="-3">2241000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent contextRef="c20170630" unitRef="U001" decimals="-3">7404000</us-gaap:ReceivablesNetCurrent>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent contextRef="c20161231" unitRef="U001" decimals="-3">10585000</us-gaap:ReceivablesNetCurrent>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">2013000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">1020000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20160101to20160331" unitRef="U001" decimals="-3">1089000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20160101to20160630" unitRef="U001" decimals="-3">2325000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c20170630" unitRef="U001" decimals="-3">24686000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c20161231" unitRef="U001" decimals="-3">24157000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Net sales-->
  <us-gaap:SalesRevenueNet contextRef="c20170101to20170630" unitRef="U001" decimals="-3">27593000</us-gaap:SalesRevenueNet>
  <!--Net sales-->
  <us-gaap:SalesRevenueNet contextRef="c20160101to20160331" unitRef="U001" decimals="-3">14801000</us-gaap:SalesRevenueNet>
  <!--Net sales-->
  <us-gaap:SalesRevenueNet contextRef="c20170401to20170630" unitRef="U001" decimals="-3">13596000</us-gaap:SalesRevenueNet>
  <!--Net sales-->
  <us-gaap:SalesRevenueNet contextRef="c20160101to20160630" unitRef="U001" decimals="-3">29158000</us-gaap:SalesRevenueNet>
  <!--Components of inventory-->
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The components of inventories, net are:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;June 30, &lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;December 31, &lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,010&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;6,298&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Work-in-process&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;8&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Finished goods&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;2,504&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;3,401&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;9,521&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;9,707&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <!--Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]-->
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The following table sets forth the reconciliation of basic weighted average shares outstanding and diluted weighted average shares outstanding:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Three Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Six Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="14" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands, except per share data)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Net income&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;867&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;753&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,810&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,378&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Shares:&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Basic:&amp;#160;&amp;#160;Weighted average common shares outstanding&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,408&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,689&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,402&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,761&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Add:&amp;#160;&amp;#160;Dilutive effect of outstanding options and restricted stock units as determined by the&amp;#160;treasury stock method&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;106&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;54&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;67&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;52&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 27pt; line-height: 11.4pt; text-indent: -27pt;"&gt;Diluted:&amp;#160;&amp;#160;Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,514&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,743&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,469&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7,813&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Net income per common share:&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 18pt; line-height: 11.4pt;"&gt;Basic&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.12&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.10&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 52%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; margin-left: 18pt; line-height: 11.4pt;"&gt;Diluted&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.12&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.10&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;0.18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
  <!--Product warranty liability-->
  <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;The following table summarizes the activity recorded in the accrued product warranty liability during the six months ended June 30, 2017 and 2016:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;Six Months Ended June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: center; line-height: 11.4pt;"&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="7" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic; text-align: center; line-height: 11.4pt;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="3" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;267&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;277&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Warranties issued&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;105&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;131&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Warranty settlements&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(123&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(136&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 76%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;249&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;272&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
  <!--Schedule of Stockholders Equity [Table Text Block]-->
  <us-gaap:ScheduleOfStockholdersEquityTableTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Changes in shareholders' equity for the six months ended June 30, 2017 were as follows (in thousands):&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance at December 31, 2016&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;24,109&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Net income&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,810&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Share-based compensation expense&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;296&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Issuance of shares from exercise of stock options&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;85&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Foreign currency translation adjustment&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Relinquishment of fully vested deferred stock units&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Reversal of deferred tax asset in connection with stock options forfeited&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(99&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; padding-bottom: 2px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Dividends declared and paid on common stock&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(1,250&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance at June 30, 2017&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;24,940&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ScheduleOfStockholdersEquityTableTextBlock>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">3706000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">2034000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20160101to20160331" unitRef="U001" decimals="-3">1859000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20160101to20160630" unitRef="U001" decimals="-3">3652000</us-gaap:SellingAndMarketingExpense>
  <!--Share-based compensation expense-->
  <us-gaap:ShareBasedCompensation contextRef="c20160101to20160630" unitRef="U001" decimals="-3">305000</us-gaap:ShareBasedCompensation>
  <!--Share-based compensation expense-->
  <us-gaap:ShareBasedCompensation contextRef="c20170101to20170630" unitRef="U001" decimals="-3">296000</us-gaap:ShareBasedCompensation>
  <!--Issuance of shares from exercise of stock options, net of tax benefit-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">85000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Issuance of deferred stock units, net of relinquishments-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-18000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <!--Shareholders' equity-->
  <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="c20170101to20170630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;5. Shareholders' equity&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Changes in shareholders' equity for the six months ended June 30, 2017 were as follows (in thousands):&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance at December 31, 2016&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;24,109&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Net income&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;1,810&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Share-based compensation expense&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;296&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Issuance of shares from exercise of stock options&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;85&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Foreign currency translation adjustment&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Relinquishment of fully vested deferred stock units&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(18&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Reversal of deferred tax asset in connection with stock options forfeited&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(99&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; padding-bottom: 2px; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Dividends declared and paid on common stock&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: right; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;(1,250&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left; background-color: #ffffff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 88%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;Balance at June 30, 2017&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;24,940&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; border-bottom: #000000 4px double; text-align: left; background-color: #cceeff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;For the three months ended June 30, 2017, our Board of Directors declared a quarterly cash dividend of $0.09 per share, totaling $663,000, which was paid in June 2017 to common shareholders of record at the close of business on May 19, 2017.&amp;#160;&amp;#160;For the three months ended June 30, 2016, dividends declared and paid totaled $609,000, or $0.08 per share.&amp;#160;&amp;#160;For the six months ended&amp;#160; June 30, 2017 and 2016, dividends declared and paid totaled $1,250,000, or $0.17 per share, and $1,232,000, or $0.16 per share, respectively.&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity contextRef="c20170630" unitRef="U001" decimals="-3">24940000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity contextRef="c20161231" unitRef="U001" decimals="-3">24109000</us-gaap:StockholdersEquity>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares contextRef="c20170630" unitRef="U002" decimals="INF">3851967</us-gaap:TreasuryStockShares>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares contextRef="c20161231" unitRef="U002" decimals="INF">3851967</us-gaap:TreasuryStockShares>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue contextRef="c20170630" unitRef="U001" decimals="-3">29752000</us-gaap:TreasuryStockValue>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue contextRef="c20161231" unitRef="U001" decimals="-3">29752000</us-gaap:TreasuryStockValue>
  <!--Previously unrecognized tax benefit recognized-->
  <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c20170401to20170630" unitRef="U001" decimals="-3">31000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
  <!--Total gross unrecognized tax benefits that would impact the effective rate-->
  <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c20170630" unitRef="U001" decimals="-3">111000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
  <!--Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued-->
  <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c20170630" unitRef="U001" decimals="-3">25000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c20160101to20160331" unitRef="U002" decimals="-3">7743000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c20170401to20170630" unitRef="U002" decimals="-3">7514000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c20170101to20170630" unitRef="U002" decimals="-3">7469000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c20160101to20160630" unitRef="U002" decimals="-3">7813000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20170401to20170630" unitRef="U002" decimals="-3">7408000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20160101to20160331" unitRef="U002" decimals="-3">7689000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20170101to20170630" unitRef="U002" decimals="-3">7402000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20160101to20160630" unitRef="U002" decimals="-3">7761000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-24000</tact:InterestAndOtherIncomeExpense>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20160101to20160331" unitRef="U001" decimals="-3">8000</tact:InterestAndOtherIncomeExpense>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">-10000</tact:InterestAndOtherIncomeExpense>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20160101to20160630" unitRef="U001" decimals="-3">5000</tact:InterestAndOtherIncomeExpense>
  <!--Extended Product Warranty Period-Maximum [Member]-->
  <tact:ExtendedProductWarrantyPeriod contextRef="c20170101to20170630_RangeAxis_MaximumMember">P24M</tact:ExtendedProductWarrantyPeriod>
</xbrl>
