<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by EDGARfilings PROfile 4.3.3.1 Broadridge-->
<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/2018-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2018-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/2017-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:naics="http://xbrl.sec.gov/naics/2017-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:srt="http://fasb.org/srt/2018-01-31" xmlns:tact="http://transact-tech.com/20180630" xmlns="http://www.xbrl.org/2003/instance">
  <link:schemaRef xlink:type="simple" xlink:href="tact-20180630.xsd" />
  <xbrli:context id="c20180101to20180630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </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="c20180228">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-28</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <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="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="c20180401to20180630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </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="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="c20180401to20180630_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>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-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: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: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="c20180101to20180630">false</dei:AmendmentFlag>
  <!--Current Fiscal Year End Date-->
  <dei:CurrentFiscalYearEndDate contextRef="c20180101to20180630">--12-31</dei:CurrentFiscalYearEndDate>
  <!--Document Period End Date-->
  <dei:DocumentPeriodEndDate contextRef="c20180101to20180630">2018-06-30</dei:DocumentPeriodEndDate>
  <!--Entity Well-known Seasoned Issuer-->
  <dei:EntityWellKnownSeasonedIssuer contextRef="c20180101to20180630">No</dei:EntityWellKnownSeasonedIssuer>
  <!--Entity Voluntary Filers-->
  <dei:EntityVoluntaryFilers contextRef="c20180101to20180630">No</dei:EntityVoluntaryFilers>
  <!--Entity Current Reporting Status-->
  <dei:EntityCurrentReportingStatus contextRef="c20180101to20180630">Yes</dei:EntityCurrentReportingStatus>
  <!--Entity Filer Category-->
  <dei:EntityFilerCategory contextRef="c20180101to20180630">Smaller Reporting Company</dei:EntityFilerCategory>
  <!--Entity Public Float-->
  <dei:EntityPublicFloat contextRef="c20170630" unitRef="U001" decimals="0">0</dei:EntityPublicFloat>
  <!--Entity Registrant Name-->
  <dei:EntityRegistrantName contextRef="c20180101to20180630">TRANSACT TECHNOLOGIES INC</dei:EntityRegistrantName>
  <!--Entity Central Index Key-->
  <dei:EntityCentralIndexKey contextRef="c20180101to20180630">0001017303</dei:EntityCentralIndexKey>
  <!--Entity Common Stock, Shares Outstanding-->
  <dei:EntityCommonStockSharesOutstanding contextRef="c20180228" unitRef="U002" decimals="INF">0</dei:EntityCommonStockSharesOutstanding>
  <!--Document Fiscal Year Focus-->
  <dei:DocumentFiscalYearFocus contextRef="c20180101to20180630">2018</dei:DocumentFiscalYearFocus>
  <!--Document Fiscal Period Focus-->
  <dei:DocumentFiscalPeriodFocus contextRef="c20180101to20180630">Q2</dei:DocumentFiscalPeriodFocus>
  <!--Document Type-->
  <dei:DocumentType contextRef="c20180101to20180630">10-Q</dei:DocumentType>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent contextRef="c20180630" unitRef="U001" decimals="-3">5202000</us-gaap:AccountsPayableCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent contextRef="c20171231" unitRef="U001" decimals="-3">3841000</us-gaap:AccountsPayableCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent contextRef="c20180630" unitRef="U001" decimals="-3">3040000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent contextRef="c20171231" unitRef="U001" decimals="-3">3339000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Fixed assets, accumulated depreciation-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c20180630" unitRef="U001" decimals="-3">20114000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Fixed assets, accumulated depreciation-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c20171231" unitRef="U001" decimals="-3">19752000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Treasury stock, 3,851,967 and 3,388,589 shares, at cost-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c20180630" unitRef="U001" decimals="-3">-110000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Treasury stock, 3,851,967 and 3,388,589 shares, at cost-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c20171231" unitRef="U001" decimals="-3">-99000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c20180630" unitRef="U001" decimals="-3">31533000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c20171231" unitRef="U001" decimals="-3">31353000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c20180101to20180630" unitRef="U001" decimals="-3">337000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--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="c20180401to20180630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3">196000</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">147000</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">732000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Assets-->
  <us-gaap:Assets contextRef="c20180630" unitRef="U001" decimals="-3">33847000</us-gaap:Assets>
  <!--Assets-->
  <us-gaap:Assets contextRef="c20171231" unitRef="U001" decimals="-3">33950000</us-gaap:Assets>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent contextRef="c20171231" unitRef="U001" decimals="-3">26361000</us-gaap:AssetsCurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent contextRef="c20180630" unitRef="U001" decimals="-3">26048000</us-gaap:AssetsCurrent>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">7589000</us-gaap:AssetsNoncurrent>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">7799000</us-gaap:AssetsNoncurrent>
  <!--Business Description and Basis of Presentation [Text Block]-->
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock contextRef="c20180101to20180630">&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 ("U.S. GAAP") for interim financial information.&amp;#160;&amp;#160;Accordingly, they do not include all of the information and footnotes required by U.S. GAAP 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, 2017 Condensed Consolidated Balance Sheet data was derived from audited financial statements, but does not include all disclosures required by U.S. GAAP.&amp;#160;&amp;#160;These interim financial statements should be read in conjunction with the audited financial statements for the year ended December 31, 2017 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 loss, net of tax", in the Condensed Consolidated Balance Sheets.&amp;#160;&amp;#160;Transaction gains and losses are included in "Interest and other income (expense)" 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, 2018 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="c20170101to20170630" unitRef="U001" decimals="-3">165000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--Capital expenditures funded by accounts payable-->
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c20180101to20180630" unitRef="U001" decimals="-3">13000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--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="c20180101to20180630" unitRef="U001" decimals="-3">-1751000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20171231" unitRef="U001" decimals="-3">5507000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c20180630" unitRef="U001" decimals="-3">3756000</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="c20170630" unitRef="U001" decimals="-3">4877000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized contextRef="c20171231" unitRef="U002" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized contextRef="c20180630" unitRef="U002" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="c20180630" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="c20171231" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--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="c20180401to20180630" unitRef="U003" decimals="INF">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid contextRef="c20180101to20180630" unitRef="U003" decimals="INF">0.18</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>
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued contextRef="c20171231" unitRef="U002" decimals="INF">11366526</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued contextRef="c20180630" unitRef="U002" decimals="INF">11422620</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding contextRef="c20180630" unitRef="U002" decimals="INF">7377778</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding contextRef="c20171231" unitRef="U002" decimals="INF">7478094</us-gaap:CommonStockSharesOutstanding>
  <!--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="c20171231" unitRef="U001" decimals="-3">114000</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="c20180630" unitRef="U001" decimals="-3">114000</us-gaap:CommonStockValue>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c20180401to20180630" unitRef="U001" decimals="-3">1200000</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="c20180101to20180630" unitRef="U001" decimals="-3">1879000</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>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue contextRef="c20180401to20180630" unitRef="U001" decimals="-3">7760000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue contextRef="c20170401to20170630" unitRef="U001" decimals="-3">7166000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue contextRef="c20180101to20180630" unitRef="U001" decimals="-3">14141000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue contextRef="c20170101to20170630" unitRef="U001" decimals="-3">15070000</us-gaap:CostOfRevenue>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit contextRef="c20171231" unitRef="U001" decimals="-3">271000</us-gaap:DeferredRentCredit>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit contextRef="c20180630" unitRef="U001" decimals="-3">269000</us-gaap:DeferredRentCredit>
  <!--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="c20180101to20180630" unitRef="U001" decimals="-3">24000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:DeferredRevenueNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">69000</us-gaap:DeferredRevenueNoncurrent>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:DeferredRevenueNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">94000</us-gaap:DeferredRevenueNoncurrent>
  <!--Deferred revenue-->
  <us-gaap:DeferredRevenueCurrent contextRef="c20171231" unitRef="U001" decimals="-3">169000</us-gaap:DeferredRevenueCurrent>
  <!--Deferred revenue-->
  <us-gaap:DeferredRevenueCurrent contextRef="c20180630" unitRef="U001" decimals="-3">243000</us-gaap:DeferredRevenueCurrent>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">2285000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">2308000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization contextRef="c20170101to20170630" unitRef="U001" decimals="-3">602000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization contextRef="c20180101to20180630" unitRef="U001" decimals="-3">480000</us-gaap:DepreciationAndAmortization>
  <!--Dividends, Common Stock, Cash-->
  <us-gaap:DividendsCommonStockCash contextRef="c20180101to20180630" unitRef="U001" decimals="-3">1336000</us-gaap:DividendsCommonStockCash>
  <!--Earnings per share-->
  <us-gaap:EarningsPerShareTextBlock contextRef="c20180101to20180630">&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 &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;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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 &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;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 9px; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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="width: 9px; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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="width: 9px; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;1,210&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;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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;1,890&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.23%; 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;/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.23%; 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.23%; 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; font-weight: bold; line-height: 11.4pt;"&gt;7,401&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,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; font-weight: bold; line-height: 11.4pt;"&gt;7,467&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.23%; 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;/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; font-weight: bold; line-height: 11.4pt;"&gt;259&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;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; font-weight: bold; line-height: 11.4pt;"&gt;315&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.23%; 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;/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; font-weight: bold; line-height: 11.4pt;"&gt;7,660&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,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; font-weight: bold; line-height: 11.4pt;"&gt;7,782&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.23%; 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;/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.23%; 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.23%; 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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.16&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.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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.25&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.23%; 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;/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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.16&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.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; font-weight: bold; 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; font-weight: bold; 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.23%; 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;/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, 2018 and 2017, there were 196 thousand and 407 thousand, 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, 2018 and 2017, there were 147 thousand and 732 thousand, 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>
  <!--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="c20170101to20170630" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20180101to20180630" unitRef="U003" decimals="2">0.25</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic contextRef="c20180401to20180630" unitRef="U003" decimals="2">0.16</us-gaap:EarningsPerShareBasic>
  <!--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="c20180101to20180630" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20180401to20180630" unitRef="U003" decimals="2">0.16</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted contextRef="c20170401to20170630" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareDiluted>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-19000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-5000</us-gaap:EffectOfExchangeRateOnCashAndCashEquivalents>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20180401to20180630" unitRef="U004" decimals="3">0.201</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20180101to20180630" unitRef="U004" decimals="3">0.204</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20170401to20170630" unitRef="U004" decimals="3">0.331</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c20160101to20160630" unitRef="U004" decimals="3">0.329</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="c20180101to20180630" unitRef="U001" decimals="-3">-265000</us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued contextRef="c20180101to20180630" unitRef="U001" decimals="-3">177000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued contextRef="c20170101to20170630" unitRef="U001" decimals="-3">105000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Accrued product warranty liability, long-term-->
  <us-gaap:ExtendedProductWarrantyAccrualNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">95000</us-gaap:ExtendedProductWarrantyAccrualNoncurrent>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20171231" unitRef="U001" decimals="-3">267000</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="c20180630" unitRef="U001" decimals="-3">303000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual contextRef="c20170630" unitRef="U001" decimals="-3">249000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments contextRef="c20180101to20180630" unitRef="U001" decimals="-3">141000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments contextRef="c20170101to20170630" unitRef="U001" decimals="-3">123000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Accrued product warranty liability, current-->
  <us-gaap:ExtendedProductWarrantyAccrualCurrent contextRef="c20180630" unitRef="U001" decimals="-3">208000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c20171231" unitRef="U001" decimals="-3">3359000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c20180630" unitRef="U001" decimals="-3">3423000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-87000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-9000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">4082000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense contextRef="c20180101to20180630" unitRef="U001" decimals="-3">4323000</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="c20180401to20180630" unitRef="U001" decimals="-3">2111000</us-gaap:GeneralAndAdministrativeExpense>
  <!--Goodwill-->
  <us-gaap:Goodwill contextRef="c20180630" unitRef="U001" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Goodwill-->
  <us-gaap:Goodwill contextRef="c20171231" unitRef="U001" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20180401to20180630" unitRef="U001" decimals="-3">6991000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20170101to20170630" unitRef="U001" decimals="-3">12523000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20180101to20180630" unitRef="U001" decimals="-3">12853000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit contextRef="c20170401to20170630" unitRef="U001" decimals="-3">6430000</us-gaap:GrossProfit>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2373000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--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="c20180401to20180630" unitRef="U001" decimals="-3">1515000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20170401to20170630" unitRef="U001" decimals="-3">429000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20180401to20180630" unitRef="U001" decimals="-3">305000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20170101to20170630" unitRef="U001" decimals="-3">888000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20180101to20180630" unitRef="U001" decimals="-3">483000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit contextRef="c20160101to20160630" unitRef="U001" decimals="-3">888000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income taxes-->
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c20180101to20180630">&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 2018 of $305 thousand at an effective tax rate of 20.1%, compared to an income tax provision during the second quarter of 2017 of $429 thousand at an effective tax rate of 33.1%.&amp;#160;&amp;#160;For the six months ended June 30, 2018, we recorded an income tax provision of $483 thousand at an effective tax rate of 20.4%, compared to an income tax provision during the six months ended June 30, 2017 of $888 thousand at an effective tax rate of 32.9%.&amp;#160;&amp;#160;The effective tax rate for the three and six months ended June 30, 2018 was lower than the three and six months ended June 30, 2017 effective tax rate due to the passage of the Tax Cuts and Jobs Act (the "Tax Reform Act") enacted on December 22, 2017.&amp;#160; The legislation significantly changes U.S. tax law by, among other things, lowering corporate income tax rates, implementing a territorial tax system and imposing a one-time repatriation tax on undistributed foreign earnings. The Tax Reform Act reduced the U.S. corporate income tax rate from a maximum of 35% to a flat 21% rate effective January 1, 2018 and, as a result, reduced our statutory U.S. corporate income tax rate from 34% to 21%.&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;On December 22, 2017, the Securities and Exchange Commission ("SEC") staff issued Staff Accounting Bulletin No. 118 ("SAB 118") to address the application of U.S. GAAP in situations where a registrant does not have the necessary information available, prepared, or analyzed in reasonable detail to complete the accounting for certain income tax effects of the Tax Reform Act. SAB 118 provides a measurement period, not to exceed one year from the enactment of the Tax Reform Act. In accordance with SAB 118, the Company has recognized provisional tax impacts related to the revaluation of deferred tax assets and liabilities and included these amounts in its consolidated financial statements for the year ended December 31, 2017, and no changes were made to these provisional amounts during the quarter ended June 30, 2018. The ultimate impact may differ from these provisional amounts, possibly materially, due to, among other things, additional analysis, changes in interpretations and assumptions, additional regulatory guidance from Treasury, the Internal Revenue Service and State Governments, and actions the Company may take as a result of the Tax Reform Act, but the enactment of this legislation did not result in a material adjustment for the six months ended June 30, 2018.&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;While the Tax Reform Act provides for a territorial tax system, beginning in 2018, it includes two new U.S. tax base erosion provisions, the global intangible low-taxed income ("GILTI") provisions and the base-erosion and anti-abuse tax ("BEAT") provisions. The GILTI provisions require the Company to include in its U.S. income tax return foreign subsidiary earnings in excess of an allowable return on the foreign subsidiary's tangible assets. The BEAT provisions in the Tax Reform Act eliminate the deduction of certain base-erosion payments made to related foreign corporations, and impose a minimum tax if greater than regular income tax. The Company has not recorded any impacts of GILTI or BEAT in its consolidated financial statements for the quarter ended June 30, 2018.&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 2013.&amp;#160;&amp;#160;However, our federal tax returns for the years 2014 through 2016 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;&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;As of June 30, 2018, we had $104 thousand 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 $28 thousand of the $104 thousand of unrecognized tax benefits will reverse in 2018 upon the 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 reported as "Deferred tax assets" in the Condensed Consolidated Balance Sheet.&amp;#160; As of June 30, 2018, we have $23 thousand of accrued interest and penalties related to uncertain tax positions.&amp;#160; The Company maintains a valuation allowance against certain deferred tax assets where realization is not certain.&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>
  <!--Prepaid income taxes-->
  <us-gaap:IncomeTaxesReceivable contextRef="c20171231" unitRef="U001" decimals="-3">514000</us-gaap:IncomeTaxesReceivable>
  <!--Prepaid income taxes-->
  <us-gaap:IncomeTaxesReceivable contextRef="c20180630" unitRef="U001" decimals="-3">286000</us-gaap:IncomeTaxesReceivable>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-188000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-28000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c20180101to20180630" unitRef="U001" decimals="-3">1395000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-1527000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Income Taxes Receivable-->
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="c20170101to20170630" unitRef="U001" decimals="-3">209000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <!--Increase (Decrease) in Income Taxes Receivable-->
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-228000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2513000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-189000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Receivables-->
  <us-gaap:IncreaseDecreaseInReceivables contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-678000</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="c20170101to20170630" unitRef="U001" decimals="-3">299000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Increase (Decrease) in Other Operating Assets-->
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-94000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Add: Dilutive effect of outstanding options as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="c20180101to20180630" unitRef="U002" decimals="-3">315000</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="c20180401to20180630" unitRef="U002" decimals="-3">259000</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>
  <!--Intangible assets, net of accumulated amortization of $3,024, and $2,779, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c20180630" unitRef="U001" decimals="-3">411000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Intangible assets, net of accumulated amortization of $3,024, and $2,779, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c20171231" unitRef="U001" decimals="-3">458000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20170401to20170630" unitRef="U001" decimals="-3">-8000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-14000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20180401to20180630" unitRef="U001" decimals="-3">-6000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-16000</us-gaap:InterestIncomeExpenseNet>
  <!--Inventory Disclosure [Text Block]-->
  <us-gaap:InventoryDisclosureTextBlock contextRef="c20180101to20180630">&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 border="0" 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: 70%; 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, 2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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, 2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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="width: 70%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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="width: 1%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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; font-weight: bold; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; line-height: 11.4pt;"&gt;8,886&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: 12%; 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,322&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: 70%; 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: 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: #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: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;2,496&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&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: 12%; 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;2,553&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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;&amp;#160;&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; font-weight: bold; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;11,382&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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: 12%; 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;8,875&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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:InventoryDisclosureTextBlock>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c20180630" unitRef="U001" decimals="-3">2496000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c20171231" unitRef="U001" decimals="-3">2553000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Inventories-->
  <us-gaap:InventoryNet contextRef="c20171231" unitRef="U001" decimals="-3">8875000</us-gaap:InventoryNet>
  <!--Inventories-->
  <us-gaap:InventoryNet contextRef="c20180630" unitRef="U001" decimals="-3">11382000</us-gaap:InventoryNet>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves contextRef="c20171231" unitRef="U001" decimals="-3">6322000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves contextRef="c20180630" unitRef="U001" decimals="-3">8886000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Liabilities-->
  <us-gaap:Liabilities contextRef="c20180630" unitRef="U001" decimals="-3">9110000</us-gaap:Liabilities>
  <!--Liabilities-->
  <us-gaap:Liabilities contextRef="c20171231" unitRef="U001" decimals="-3">7936000</us-gaap:Liabilities>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c20171231" unitRef="U001" decimals="-3">33950000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c20180630" unitRef="U001" decimals="-3">33847000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">625000</us-gaap:LiabilitiesNoncurrent>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">587000</us-gaap:LiabilitiesNoncurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent contextRef="c20180630" unitRef="U001" decimals="-3">8485000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent contextRef="c20171231" unitRef="U001" decimals="-3">7349000</us-gaap:LiabilitiesCurrent>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-1183000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-3493000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-409000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-751000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c20170101to20170630" unitRef="U001" decimals="-3">3971000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2512000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20180101to20180630" unitRef="U001" decimals="-3">1890000</us-gaap:NetIncomeLoss>
  <!--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="c20180401to20180630" unitRef="U001" decimals="-3">1210000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss contextRef="c20170101to20170630" unitRef="U001" decimals="-3">1810000</us-gaap:NetIncomeLoss>
  <!--New Accounting Pronouncements and Changes in Accounting Principles [Text Block]-->
  <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="c20180101to20180630">&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 February&amp;#160;2016, the Financial Accounting Standards Board ("FASB")&amp;#160;issued Accounting Standards Update ("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 does have leases for equipment and real property which exceed 12 months and we are currently evaluating the impact that the adoption of ASU&amp;#160;2016-02 will have on our 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;The following accounting pronouncements were adopted during 2018:&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;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;1)&lt;/div&gt;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Revenue recognition:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&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;ASU No. 2014-09,"&amp;#160;Revenue from Contracts with Customers" and its related amendments (collectively, ASC 606) are effective for reporting periods beginning after December 15, 2017, and interim periods therein.&amp;#160; 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.&amp;#160; Entities have the option of using either a full retrospective approach or modified retrospective approach to adopt the amended guidance.&amp;#160; We adopted ASC 606 effective January 1, 2018 and elected the modified retrospective approach.&amp;#160; The results for periods before 2018 were not adjusted for the new standard and no cumulative effective for the change in accounting was recognized through retained earnings at the date of adoption.&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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Periods prior to January 1, 2018&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's revenue recognition method prior to the adoption of ASC 606 can be found under Note 2. Summary of significant accounting policies within the "Notes to Consolidated Financial Statements" in the Annual Report on Form 10-K for the fiscal year ended December 31, 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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Periods commencing January 1, 2018&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 accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include product and extended warranties). A contract's transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. When there are multiple performance obligations within a contract, we allocate the transaction price to each performance obligation based on its standalone selling price.&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 transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer. To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the "expected value" method or the "most likely amount" method depending on the nature of the variable consideration. Variable consideration is included in the transaction price if, in the Company's judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.&lt;/div&gt;&lt;div style="text-align: justify; 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 a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&amp;#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&amp;#160; We also sell a software solution, EPICENTRAL&amp;#8482;, that enables casino operators to create promotional coupons and marketing messages and to print them in real-time at the slot machine.&amp;#160; EPICENTRAL&lt;sup&gt;TM&lt;/sup&gt; is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&amp;#160;&amp;#160;EPICENTRAL&amp;#8482; software and hardware are integrated to deliver the system's full functionality.&amp;#160; The transaction prices from EPICENTRAL&amp;#8482; software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&amp;#160; For out-of-warranty repairs, the transaction price is recognized after completion of the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer.&lt;/div&gt;&lt;div style="text-align: justify; 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;Performance obligations are satisfied over-time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment. For our separately priced extended warranty and maintenance agreements (including free one-year maintenance received by the customers upon completion of EPICENTRAL&amp;#8482; installation) revenue is recognized over-time as the customer receives the benefit.&amp;#160; The transaction price from the maintenance services is recognized ratably over-time, using output methods, as control of the services is transferred to the customer. For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.&lt;/div&gt;&lt;div style="text-align: justify; 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 the cases where there is more than one performance obligation in a customer arrangement, the Company typically uses the "standalone selling price" method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL&amp;#8482; installations, the Company uses the adjusted market assessment approach.&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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Disaggregation of revenue&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 disaggregates our revenue by market-type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&amp;#160; Sales and usage-based taxes are excluded from revenues.&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 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;&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="10" valign="bottom" style="vertical-align: top; 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&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;June 30, 2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;&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: top; 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;United States&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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: top; 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;International&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;Total&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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="10" valign="bottom" style="vertical-align: top;"&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="width: 64%; 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;Restaurant solutions&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;2,132&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;172&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;2,304&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: 64%; 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;POS automation and banking&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;3,855&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;113&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;3,968&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: 64%; 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;Casino and gaming&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;8,351&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;&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;4,656&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;&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;13,007&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: 64%; 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;Lottery&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,069&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;47&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;1,116&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: 64%; 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;Printrex&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;529&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;&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;82&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;&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;611&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: 64%; 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;TransAct Services Group&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;5,592&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;&amp;#160;&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;396&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;&amp;#160;&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;5,988&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;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 64%; 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: justify; line-height: 11.4pt; text-indent: 10pt;"&gt;Total net sales&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;21,528&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;5,466&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;26,994&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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Changes in accounting policies and financial statement impact of adopting ASC 606&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Except for the changes below, we have consistently applied the accounting policies to all periods presented in the consolidated financial statements.&amp;#160; As noted above, we adopted ASC 606 using the modified retrospective approach which allows the Company to record any changes using the cumulative effect.&amp;#160; The adoption of the ASC 606 did not require the Company to record an adjustment to retained earnings at January 1, 2018 and did not have an impact on the consolidated income statement during the first six months of 2018, basic or diluted earnings per share, consolidated statement of cash flows or consolidated balance sheet at June 30, 2018.&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;&lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;Costs to Obtain a Contract&lt;/font&gt;&lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt; &amp;#8211; &lt;/font&gt;Costs to obtain a contract, such as sales commissions, were previously expensed as incurred. The Company applied the practical expedient for contracts with customers for a term of twelve months or less, in accordance with ASC 340-40-25-4, which allows TransAct to continue to expense sales commissions as incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.&amp;#160; No amounts were capitalized as of the adoption of ASC 606 or as of June 30, 2018.&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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Contract balances&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Our contract liabilities consist of customer pre-payments and deferred revenue.&amp;#160; Customer prepayments are reported as "Accrued Liabilities" in current liabilities in the Condensed Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&amp;#160; The increase in customer pre-payments is due to increased sales to our European casino and gaming customers who sometimes require higher pre-payment amounts compared to our other customers.&amp;#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, EPICENTRAL&amp;#8482; maintenance contracts and testing service contracts, and is recognized as revenue as (or when) we perform under the contract.&amp;#160; We do not have any contract asset balances as of June 30, 2018 or December 31, 2017.&amp;#160; In the first six month of 2018, we recognized revenue of $372 thousand related to our contract liabilities at January 1, 2018.&amp;#160; Total contract liabilities consist of the following:&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;table border="0" 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: 70%; 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, 2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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;January 1, 2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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="width: 70%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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="width: 1%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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;Customer pre-payments&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: right;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; vertical-align: bottom; text-align: right;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; line-height: 11.4pt;"&gt;437&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: right;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; vertical-align: bottom; text-align: right;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; line-height: 11.4pt;"&gt;79&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; text-align: right; 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: 12%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; line-height: 11.4pt;"&gt;243&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; text-align: right; 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: 12%; 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;169&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: 70%; 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: left; line-height: 11.4pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: right; 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: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;94&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: right; 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: 12%; 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;69&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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;Total contract liabilities&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; text-align: right; 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; font-weight: bold; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;774&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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; text-align: right; 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: 12%; 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;317&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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; font-weight: bold; text-align: justify; line-height: 11.4pt;"&gt;Remaining performance obligations&lt;/div&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Remaining performance obligations represents the transaction price of firm orders for which a good or service has not been delivered to our customer.&amp;#160; As of June 30, 2018, the aggregate amount of the transaction price allocated to remaining performance obligations was $6.0 million.&amp;#160; The Company expects to recognize revenue on $5.0 million of our remaining performance obligations within the next twelve months, with the balance of these remaining performance obligations recognized within the next 24 months.&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;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-size: 9pt; font-family: 'Times New Roman', Times, serif; width: 100%;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: left; line-height: 11.4pt;"&gt;2)&lt;/div&gt;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; text-align: justify; line-height: 11.4pt;"&gt;Stock compensation:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&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: 10.25pt;"&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.&amp;#160; The amendments are applied prospectively to an award modified on or after the adoption date.&amp;#160; We adopted this guidance in the first quarter of 2018 and the adoption has not resulted in a change to our financial statements.&lt;/div&gt;&lt;div style="line-height: 10.25pt;"&gt;&lt;br style="line-height: 10.25pt;" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 8pt; line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20180401to20180630" unitRef="U001" decimals="-3">1618000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2474000</us-gaap:OperatingIncomeLoss>
  <!--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 Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20170101to20170630" unitRef="U001" decimals="-3">9801000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20180401to20180630" unitRef="U001" decimals="-3">5373000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20170401to20170630" unitRef="U001" decimals="-3">5124000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses contextRef="c20180101to20180630" unitRef="U001" decimals="-3">10379000</us-gaap:OperatingExpenses>
  <!--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="c20180101to20180630" unitRef="U001" decimals="-3">-11000</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="c20180401to20180630" unitRef="U001" decimals="-3">-10000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">31000</us-gaap:OtherAssetsNoncurrent>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">33000</us-gaap:OtherAssetsNoncurrent>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent contextRef="c20171231" unitRef="U001" decimals="-3">517000</us-gaap:OtherAssetsCurrent>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent contextRef="c20180630" unitRef="U001" decimals="-3">424000</us-gaap:OtherAssetsCurrent>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="c20180630" unitRef="U001" decimals="-3">262000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="c20171231" unitRef="U001" decimals="-3">247000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20180401to20180630" unitRef="U001" decimals="-3">-97000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-87000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">-8000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">-2000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--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="c20180101to20180630" unitRef="U001" decimals="-3">2000000</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--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="c20180101to20180630" unitRef="U001" decimals="-3">1336000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock contextRef="c20180401to20180630" unitRef="U001" decimals="-3">663000</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="c20180101to20180630" unitRef="U001" decimals="-3">735000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Software-->
  <us-gaap:PaymentsToAcquireSoftware contextRef="c20170101to20170630" unitRef="U001" decimals="-3">0</us-gaap:PaymentsToAcquireSoftware>
  <!--Payments to Acquire Software-->
  <us-gaap:PaymentsToAcquireSoftware contextRef="c20180101to20180630" unitRef="U001" decimals="-3">16000</us-gaap:PaymentsToAcquireSoftware>
  <!--Proceeds from stock option exercises-->
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="c20180101to20180630" unitRef="U001" decimals="-3">108000</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="c20180101to20180630">&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, 2018 and 2017:&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 &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;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;2018&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;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;/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; font-weight: bold; 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; font-weight: bold; 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;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;/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; font-weight: bold; line-height: 11.4pt;"&gt;177&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;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;/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; font-weight: bold; line-height: 11.4pt;"&gt;(141)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; 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: 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; padding-bottom: 2px; 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;&amp;#160;&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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;303&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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;249&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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, 2018, $208 thousand of the accrued product warranty liability is classified as current in "Accrued liabilities" in the Condensed Consolidated Balance Sheets and the remaining $95 thousand is classified as non-current in "Other liabilities".&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&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
  <!--Fixed assets, net of accumulated depreciation of $18,991 and $18,336, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="c20180630" unitRef="U001" decimals="-3">2451000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Fixed assets, net of accumulated depreciation of $18,991 and $18,336, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="c20171231" unitRef="U001" decimals="-3">2169000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent contextRef="c20171231" unitRef="U001" decimals="-3">10948000</us-gaap:ReceivablesNetCurrent>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent contextRef="c20180630" unitRef="U001" decimals="-3">10200000</us-gaap:ReceivablesNetCurrent>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2404000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense contextRef="c20180401to20180630" unitRef="U001" decimals="-3">1183000</us-gaap:ResearchAndDevelopmentExpense>
  <!--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>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c20171231" unitRef="U001" decimals="-3">24756000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c20180630" unitRef="U001" decimals="-3">25310000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Net sales-->
  <us-gaap:Revenues contextRef="c20180101to20180630" unitRef="U001" decimals="-3">26994000</us-gaap:Revenues>
  <!--Net sales-->
  <us-gaap:Revenues contextRef="c20170101to20170630" unitRef="U001" decimals="-3">27593000</us-gaap:Revenues>
  <!--Net sales-->
  <us-gaap:Revenues contextRef="c20170401to20170630" unitRef="U001" decimals="-3">13596000</us-gaap:Revenues>
  <!--Net sales-->
  <us-gaap:Revenues contextRef="c20180401to20180630" unitRef="U001" decimals="-3">14751000</us-gaap:Revenues>
  <!--Components of inventory-->
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c20180101to20180630">&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 border="0" 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: 70%; 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, 2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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, 2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; 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="width: 70%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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="width: 1%; 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="width: 1%; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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; font-weight: bold; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; vertical-align: bottom; text-align: right; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; line-height: 11.4pt;"&gt;8,886&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: 12%; 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,322&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: 70%; 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: 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: #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: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;2,496&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&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: 12%; 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;2,553&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #ffffff;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 70%; 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;&amp;#160;&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; font-weight: bold; line-height: 11.4pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="width: 12%; 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; font-weight: bold; line-height: 11.4pt;"&gt;11,382&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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: 12%; 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;8,875&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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:ScheduleOfInventoryCurrentTableTextBlock>
  <!--Schedule of Stockholders Equity [Table Text Block]-->
  <us-gaap:ScheduleOfStockholdersEquityTableTextBlock contextRef="c20180101to20180630">&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, 2018 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, 2017&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;26,014&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,890&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;337&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;108&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;(11&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; 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 stock awards upon exercise and 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;(265&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;Dividends declared and paid on common stock&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;(1,336&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;Purchase of common stock for treasury&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;(2,000&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, 2018&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,737&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>
  <!--Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]-->
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="c20180101to20180630">&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 &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;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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 &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;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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;2018&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 9px; vertical-align: bottom; border-bottom: #000000 2px solid; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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;2017&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid; 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="width: 9px; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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="width: 9px; vertical-align: bottom; text-align: left;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 15px; 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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;1,210&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;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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;1,890&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.23%; 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;/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.23%; 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.23%; 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; font-weight: bold; line-height: 11.4pt;"&gt;7,401&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,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; font-weight: bold; line-height: 11.4pt;"&gt;7,467&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.23%; 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;/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; font-weight: bold; line-height: 11.4pt;"&gt;259&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;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; font-weight: bold; line-height: 11.4pt;"&gt;315&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.23%; 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;/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; font-weight: bold; line-height: 11.4pt;"&gt;7,660&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,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; font-weight: bold; line-height: 11.4pt;"&gt;7,782&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.23%; 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;/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.23%; 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.23%; 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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.16&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.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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.25&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.23%; 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;/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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;0.16&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.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; font-weight: bold; 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; font-weight: bold; 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.23%; 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;/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="c20180101to20180630">&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, 2018 and 2017:&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 &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;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;2018&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;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;/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; font-weight: bold; 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; font-weight: bold; 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;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;/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; font-weight: bold; line-height: 11.4pt;"&gt;177&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;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;/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; font-weight: bold; line-height: 11.4pt;"&gt;(141)&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 2px; text-align: left; background-color: #cceeff;"&gt;&lt;div style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; 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: 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; padding-bottom: 2px; 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;&amp;#160;&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; font-weight: bold; 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; font-weight: bold; line-height: 11.4pt;"&gt;303&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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;249&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; padding-bottom: 4px; 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>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20170401to20170630" unitRef="U001" decimals="-3">2034000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20180401to20180630" unitRef="U001" decimals="-3">2079000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20170101to20170630" unitRef="U001" decimals="-3">3706000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense contextRef="c20180101to20180630" unitRef="U001" decimals="-3">3652000</us-gaap:SellingAndMarketingExpense>
  <!--Share-based compensation expense-->
  <us-gaap:ShareBasedCompensation contextRef="c20180101to20180630" unitRef="U001" decimals="-3">337000</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="c20180101to20180630" unitRef="U001" decimals="-3">108000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Issuance of deferred stock units, net of relinquishments-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-265000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <!--Shareholders' equity-->
  <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="c20180101to20180630">&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, 2018 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, 2017&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;26,014&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,890&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;337&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;108&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;(11&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; 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 stock awards upon exercise and 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;(265&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;Dividends declared and paid on common stock&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;(1,336&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;Purchase of common stock for treasury&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;(2,000&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, 2018&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,737&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, 2018, our Board of Directors declared a quarterly cash dividend of $0.09 per share, totaling $663 thousand, which was paid on June 15, 2018 to common shareholders of record at the close of business on May 21, 2018.&amp;#160;&amp;#160;For the three months ended June 30, 2017, dividends declared and paid totaled $663 thousand, or $0.09 per share.&amp;#160; For the six months ended June 30, 2018 and 2017, dividends declared and paid totaled $1.3 million, or $0.18 per share, and $1.3 million, or $0.17 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="c20171231" unitRef="U001" decimals="-3">26014000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity contextRef="c20180630" unitRef="U001" decimals="-3">24737000</us-gaap:StockholdersEquity>
  <!--Treasury Stock, Value, Acquired, Cost Method-->
  <us-gaap:TreasuryStockValueAcquiredCostMethod contextRef="c20180101to20180630" unitRef="U001" decimals="-3">2000000</us-gaap:TreasuryStockValueAcquiredCostMethod>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue contextRef="c20171231" unitRef="U001" decimals="-3">30110000</us-gaap:TreasuryStockValue>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue contextRef="c20180630" unitRef="U001" decimals="-3">32110000</us-gaap:TreasuryStockValue>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares contextRef="c20180630" unitRef="U002" decimals="INF">4044842</us-gaap:TreasuryStockShares>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares contextRef="c20171231" unitRef="U002" decimals="INF">3888432</us-gaap:TreasuryStockShares>
  <!--Total gross unrecognized tax benefits that would impact the effective rate-->
  <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c20180630" unitRef="U001" decimals="-3">104000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
  <!--Previously unrecognized tax benefit recognized-->
  <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c20180401to20180630" unitRef="U001" decimals="-3">28000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
  <!--Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued-->
  <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c20180630" unitRef="U001" decimals="-3">23000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20180101to20180630" unitRef="U002" decimals="-3">7467000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20180401to20180630" unitRef="U002" decimals="-3">7401000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20170401to20170630" unitRef="U002" decimals="-3">7408000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c20170101to20170630" unitRef="U002" decimals="-3">7402000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--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="c20180101to20180630" unitRef="U002" decimals="-3">7782000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c20180401to20180630" unitRef="U002" decimals="-3">7660000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20180101to20180630" unitRef="U001" decimals="-3">-101000</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="c20170101to20170630" unitRef="U001" decimals="-3">-24000</tact:InterestAndOtherIncomeExpense>
  <!--Interest and Other Income (Expense)-->
  <tact:InterestAndOtherIncomeExpense contextRef="c20180401to20180630" unitRef="U001" decimals="-3">-103000</tact:InterestAndOtherIncomeExpense>
  <!--Extended Product Warranty Period-->
  <tact:ExtendedProductWarrantyPeriod contextRef="c20180101to20180630">P24M</tact:ExtendedProductWarrantyPeriod>
</xbrl>
