<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by EDGARfilings PROfile 6.0.0.0 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/2019-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/20190630" xmlns="http://www.xbrl.org/2003/instance">
  <link:schemaRef xlink:type="simple" xlink:href="tact-20190630.xsd" />
  <xbrli:context id="c20190101to20190630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190731">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-07-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190401to20190630">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-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="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="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="c20190331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190401to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180401to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</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="c20190101to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180401to20180630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</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="c20190401to20190630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190401to20190630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180401to20180630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</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="c20180101to20180630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </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="c20190101to20190630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190401to20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180401to20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</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="c20190101to20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630_StatementEquityComponentsAxis_TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180331">
    <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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:POSAutomationAndBankingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_LotteryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:LotteryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:RestaurantSolutionsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransActServicesGroupMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:RestaurantSolutionsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:POSAutomationAndBankingMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_LotteryMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:LotteryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransActServicesGroupMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransActServicesGroupMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:RestaurantSolutionsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_PrintrexMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_LotteryMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:LotteryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:POSAutomationAndBankingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_StatementGeographicalAxis_US">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0190401Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
          <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2019-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
        </xbrldi:typedMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0210401Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
          <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2021-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
        </xbrldi:typedMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0200401Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
          <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2020-04-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
        </xbrldi:typedMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_RangeAxis_MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-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="c20190401to20190630_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>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_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>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180630_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-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201602Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190630_RangeAxis_MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170101to20171231_RangeAxis_MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170101to20171231">
    <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-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:unit id="U001">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U002">
    <xbrli:measure>iso4217:USD</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>
  <!--Entity Address, Address Line One-->
  <dei:EntityAddressAddressLine1 id="Fact_66224241755b4d46b5772da4cb1f5ebb" contextRef="c20190101to20190630">One Hamden Center, 2319 Whitney Avenue, Suite 3B</dei:EntityAddressAddressLine1>
  <!--Amendment Flag-->
  <dei:AmendmentFlag id="Fact_dd294ccb12a04b3d91036875d60db061" contextRef="c20190101to20190630">false</dei:AmendmentFlag>
  <!--Entity Address, City or Town-->
  <dei:EntityAddressCityOrTown id="Fact_035d79354a344bacb7b2e241b6e443c9" contextRef="c20190101to20190630">Hamden</dei:EntityAddressCityOrTown>
  <!--Current Fiscal Year End Date-->
  <dei:CurrentFiscalYearEndDate id="Fact_ce083c2955c94c98a3d524597c1f55fb" contextRef="c20190101to20190630">--12-31</dei:CurrentFiscalYearEndDate>
  <!--Document Period End Date-->
  <dei:DocumentPeriodEndDate id="Fact_4cd6a65dce2048b3ad3fbd759d5794ab" contextRef="c20190101to20190630">2019-06-30</dei:DocumentPeriodEndDate>
  <!--Entity Incorporation, State or Country Code-->
  <dei:EntityIncorporationStateCountryCode id="Fact_dcec095f5aa94bb18bf7d9f74f94d16b" contextRef="c20190101to20190630">DE</dei:EntityIncorporationStateCountryCode>
  <!--Entity Address, Postal Zip Code-->
  <dei:EntityAddressPostalZipCode id="Fact_ec730a7deb2f49eba38744a87fe325ec" contextRef="c20190101to20190630">06518</dei:EntityAddressPostalZipCode>
  <!--Entity Address, State or Province-->
  <dei:EntityAddressStateOrProvince id="Fact_05a29a78637d4669b29630d7d779fe74" contextRef="c20190101to20190630">CT</dei:EntityAddressStateOrProvince>
  <!--Entity Current Reporting Status-->
  <dei:EntityCurrentReportingStatus id="Fact_329b135298bc44f2945fe9fee6f058d5" contextRef="c20190101to20190630">Yes</dei:EntityCurrentReportingStatus>
  <!--Entity Filer Category-->
  <dei:EntityFilerCategory id="Fact_c0e064fe66ce4e6aba2c2259270a0dce" contextRef="c20190101to20190630">Accelerated Filer</dei:EntityFilerCategory>
  <!--Entity Registrant Name-->
  <dei:EntityRegistrantName id="Fact_4dadf9f154a8422eb62962522370619b" contextRef="c20190101to20190630">TRANSACT TECHNOLOGIES INC</dei:EntityRegistrantName>
  <!--Entity Central Index Key-->
  <dei:EntityCentralIndexKey id="Fact_02a6e67d6aa346779f593a935f60b53c" contextRef="c20190101to20190630">0001017303</dei:EntityCentralIndexKey>
  <!--Entity Tax Identification Number-->
  <dei:EntityTaxIdentificationNumber id="Fact_684413dc2d0d4689a64fa68eecb13d2c" contextRef="c20190101to20190630">06-1456680</dei:EntityTaxIdentificationNumber>
  <!--Entity Common Stock, Shares Outstanding-->
  <dei:EntityCommonStockSharesOutstanding id="Fact_7491b02937d5428cb7ff79f5cec11653" contextRef="c20190731" unitRef="U001" decimals="INF">7469748</dei:EntityCommonStockSharesOutstanding>
  <!--Document Fiscal Year Focus-->
  <dei:DocumentFiscalYearFocus id="Fact_4471e35e4dfc4556bd9b640b7f45c0a7" contextRef="c20190101to20190630">2019</dei:DocumentFiscalYearFocus>
  <!--Document Fiscal Period Focus-->
  <dei:DocumentFiscalPeriodFocus id="Fact_b2cf239071ae4ef89e3163a72fc97eb9" contextRef="c20190101to20190630">Q2</dei:DocumentFiscalPeriodFocus>
  <!--Document Type-->
  <dei:DocumentType id="Fact_78c503596d6e4f0191ee27042f270b44" contextRef="c20190101to20190630">10-Q</dei:DocumentType>
  <!--Entity Interactive Data Current-->
  <dei:EntityInteractiveDataCurrent id="Fact_5a087180af314ecd85acb6f004514a11" contextRef="c20190101to20190630">Yes</dei:EntityInteractiveDataCurrent>
  <!--Entity Shell Company-->
  <dei:EntityShellCompany id="Fact_05de144c8aa0460c8e2848d4724c1a66" contextRef="c20190101to20190630">false</dei:EntityShellCompany>
  <!--Entity Emerging Growth Company-->
  <dei:EntityEmergingGrowthCompany id="Fact_56665046e1d1453c97a55d25f303181e" contextRef="c20190101to20190630">false</dei:EntityEmergingGrowthCompany>
  <!--Entity Ex Transition Period-->
  <dei:EntityExTransitionPeriod id="Fact_7065eaaabedc42dc8d4d421b73ca12e5" contextRef="c20190101to20190630">false</dei:EntityExTransitionPeriod>
  <!--Entity Small Business-->
  <dei:EntitySmallBusiness id="Fact_bd44cc05ba7f4f82a62c2f930f2a61f2" contextRef="c20190101to20190630">true</dei:EntitySmallBusiness>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_3c5080df4195426eb8d253627321e23e" contextRef="c20181231" unitRef="U002" decimals="-3">3483000</us-gaap:AccountsPayableCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_a4d5ac23f38b497a93d7ad513813896a" contextRef="c20190630" unitRef="U002" decimals="-3">3892000</us-gaap:AccountsPayableCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent id="Fact_ddc860c555d44e9eb9dc1b7bc14d6427" contextRef="c20181231" unitRef="U002" decimals="-3">2765000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Accrued liabilities-->
  <us-gaap:AccruedLiabilitiesCurrent id="Fact_e07f4aeaf0fb4169ab646e92ec6ba607" contextRef="c20190630" unitRef="U002" decimals="-3">2382000</us-gaap:AccruedLiabilitiesCurrent>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_d65fb792ffbd4e6abecdcff8d575b96e" contextRef="c20190630" unitRef="U002" decimals="-3">20836000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_e7ffdf0f547646b5ab257fa45ba8693f" contextRef="c20181231" unitRef="U002" decimals="-3">20518000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated other comprehensive loss, net of tax-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_57d1af29f96f442bab7b44c53ab59130" contextRef="c20190630" unitRef="U002" decimals="-3">17000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Accumulated other comprehensive loss, net of tax-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_f4356abf776c457eb26a2a0be4b30c54" contextRef="c20181231" unitRef="U002" decimals="-3">-82000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock id="Fact_5426ac669353423aa60db331e6f80a73" contextRef="c20190630" unitRef="U002" decimals="-3">32301000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Additional paid-in capital-->
  <us-gaap:AdditionalPaidInCapitalCommonStock id="Fact_a93cbadea83746ddb20603516baa7b01" contextRef="c20181231" unitRef="U002" decimals="-3">32129000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <!--Relinquishment of stock options and deferred stock units to pay withholding taxes-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet id="Fact_0321ae5d4e0744a780c6a617bb901bd0" contextRef="c20180401to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">-19000</us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet>
  <!--Relinquishment of stock options and deferred stock units to pay withholding taxes-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet id="Fact_665939ee2ac040f5be710ec276be4347" contextRef="c20190401to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">-15000</us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet>
  <!--Relinquishment of stock options and deferred stock units to pay withholding taxes-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet id="Fact_849e07f3a9594e7fb3606e839e51347e" contextRef="c20180101to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">-265000</us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet>
  <!--Relinquishment of stock options and deferred stock units to pay withholding taxes-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet id="Fact_d7aa45134a0c45ac92f9ef35fad560bf" contextRef="c20190101to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">-214000</us-gaap:AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_328bc9948b6d44f38cdf80e874ebc81a" contextRef="c20190401to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">213000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_bc49f4be157b4e79bd3cbe9c9f816c48" contextRef="c20180401to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">176000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_5cde8c513a0644b98ca7693433ca7df3" contextRef="c20190101to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">386000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition-Additional Paid-in Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_8d277aefd6094765b57c9c1d9b9e112d" contextRef="c20180101to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" 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 id="Fact_9a69e85966264fa4b10687fcdf4a4db7" contextRef="c20180401to20180630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U001" 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 id="Fact_9bf4d9f429434b2482f37d3f4508cd94" contextRef="c20190401to20190630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U001" decimals="-3">542000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount id="Fact_5d843c0d92614cce94ea997923b5f462" contextRef="c20190101to20190630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U001" decimals="-3">542000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)-Stock Compensation Plan [Member]-->
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount id="Fact_e50ce0b087e0407ba7ad6d8139bc78c5" contextRef="c20180101to20180630_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U001" decimals="-3">147000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <!--Assets-->
  <us-gaap:Assets id="Fact_7475187ff2b8491f9f0d08d6271d4dfd" contextRef="c20181231" unitRef="U002" decimals="-3">34956000</us-gaap:Assets>
  <!--Assets-->
  <us-gaap:Assets id="Fact_b6628e8abbf6486bbf6329975a596dd8" contextRef="c20190630" unitRef="U002" decimals="-3">37938000</us-gaap:Assets>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_acf47bbbe967482da899ba130599c2f5" contextRef="c20190630" unitRef="U002" decimals="-3">26609000</us-gaap:AssetsCurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_d451423201c04bcd8d0f6800ba5ab28c" contextRef="c20181231" unitRef="U002" decimals="-3">27037000</us-gaap:AssetsCurrent>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent id="Fact_812c09c1037644a0ae353cc3e8444f6b" contextRef="c20190630" unitRef="U002" decimals="-3">11329000</us-gaap:AssetsNoncurrent>
  <!--Assets, Noncurrent-->
  <us-gaap:AssetsNoncurrent id="Fact_cc466b3a69ba418b877a2b53348a7346" contextRef="c20181231" unitRef="U002" decimals="-3">7919000</us-gaap:AssetsNoncurrent>
  <!--Basis of Accounting, Policy [Policy Text Block]-->
  <us-gaap:BasisOfAccountingPolicyPolicyTextBlock id="Fact_4f73438d95034b07801394e534996f7e" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The accompanying unaudited financial statements of TransAct Technologies Incorporated (&amp;#8220;TransAct&amp;#8221;, the &amp;#8220;Company&amp;#8221;, &amp;#8220;we&amp;#8221;, &amp;#8220;us&amp;#8221;, or &amp;#8220;our&amp;#8221;) have been prepared in accordance with accounting principles generally accepted in the United States of America (&amp;#8220;U.S. GAAP&amp;#8221;) 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, 2018 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, 2018 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&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
  <!--Business Description and Basis of Presentation [Text Block]-->
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock id="Fact_1f4cc4c3a17b4ce1b3ec4a578bf16c4d" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The accompanying unaudited financial statements of TransAct Technologies Incorporated (&amp;#8220;TransAct&amp;#8221;, the &amp;#8220;Company&amp;#8221;, &amp;#8220;we&amp;#8221;, &amp;#8220;us&amp;#8221;, or &amp;#8220;our&amp;#8221;) have been prepared in accordance with accounting principles generally accepted in the United States of America (&amp;#8220;U.S. GAAP&amp;#8221;) 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, 2018 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, 2018 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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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 exchange rate as of the date the transaction was recognized, with the resulting translation gain or loss recorded in &amp;#8220;Accumulated other comprehensive income (loss), net of tax&amp;#8221;, in the Condensed Consolidated Balance Sheets and Condensed Consolidated Statements of Changes in Shareholders&amp;#8217; Equity.&amp;#160;&amp;#160;Transaction gains and losses are included in &amp;#8220;Other, net&amp;#8221; 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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The results of operations for the three and six months ended June 30, 2019 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;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
  <!--Capital expenditures included in accounts payable-->
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid id="Fact_37aa5098f46747aeb1f8f0edb38cfa3e" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">135000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--Capital expenditures included in accounts payable-->
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid id="Fact_c7dace4f07ad4f839f046d70adda070a" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">13000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_5c721d0b7b6845e982bc315912af3e6c" contextRef="c20190630" unitRef="U002" decimals="-3">4297000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_de107fcd10264633aa93ac0dec192444" contextRef="c20181231" unitRef="U002" decimals="-3">4691000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_34fa9fab736143e48f9e62da8888aa51" contextRef="c20181231" unitRef="U002" decimals="-3">4691000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_c1f6e35fc9f74827832b7e897902aa27" contextRef="c20171231" unitRef="U002" decimals="-3">5507000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_a89c26b1cf1c4fbb9ba99a0f0d6dfa2c" contextRef="c20180630" unitRef="U002" decimals="-3">3756000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_ab8847885ad84582b5c78f2bd1e855eb" contextRef="c20190630" unitRef="U002" decimals="-3">4297000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_0178e1be6ff446b59fb8fb01a958ef58" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-394000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_93fec07b29774f30aacb766340938da0" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-1751000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_06f181fbd8f9401cac05aff590ddf9db" contextRef="c20190630" unitRef="U001" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, shares authorized (in shares)-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_959ec769ad044900adc781040efbd9e9" contextRef="c20181231" unitRef="U001" decimals="INF">20000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_7f67eb551d9c4be19f93203e241f83a9" contextRef="c20190630" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common stock, par value (in dollars per share)-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_acd524fb253248789ea59ad6ed61300c" contextRef="c20181231" unitRef="U003" decimals="INF">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_0d3d4d63924d4f7f88957e80804075c1" contextRef="c20180101to20180331" unitRef="U003" decimals="2">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_44a7d960d7624d5aa10027997269ddf7" contextRef="c20190101to20190331" unitRef="U003" decimals="2">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_6edfaf90960e4a8db0ff670d2db08324" contextRef="c20190101to20190630" unitRef="U003" decimals="2">0.18</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_611bc56ddb344e12a023b18d0415dc2c" contextRef="c20180101to20180630" unitRef="U003" decimals="2">0.18</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_5c76d34319b744058dcea97fcab169c0" contextRef="c20190401to20190630" unitRef="U003" decimals="INF">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <us-gaap:CommonStockDividendsPerShareCashPaid id="Fact_da0289dccd054d2b86b1792e9b63f057" contextRef="c20180401to20180630" unitRef="U003" decimals="INF">0.09</us-gaap:CommonStockDividendsPerShareCashPaid>
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <!--Dividends declared and paid per common share (in dollars per share)-->
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued id="Fact_25095778779a4e39a33268fe030dbf73" contextRef="c20181231" unitRef="U001" decimals="INF">11463141</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares issued (in shares)-->
  <us-gaap:CommonStockSharesIssued id="Fact_2c27d23199fa42428bffa935456f3554" contextRef="c20190630" unitRef="U001" decimals="INF">11514590</us-gaap:CommonStockSharesIssued>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_02d5365581ce48f099f58ca345509dd2" contextRef="c20181231" unitRef="U001" decimals="INF">7418299</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_2ecf82f3be774387bee4d65ab5239c59" contextRef="c20190630" unitRef="U001" decimals="INF">7469748</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, $0.01 par value, 20,000,000 shares authorized; 11,500,502 and 11,463,141 shares issued, respectively; 7,455,660 and 7,418,299 shares outstanding, respectively-->
  <us-gaap:CommonStockValue id="Fact_3f2e589ce59241fdbf37d6d3cd602e5d" contextRef="c20181231" unitRef="U002" decimals="-3">115000</us-gaap:CommonStockValue>
  <!--Common stock, $0.01 par value, 20,000,000 shares authorized; 11,500,502 and 11,463,141 shares issued, respectively; 7,455,660 and 7,418,299 shares outstanding, respectively-->
  <us-gaap:CommonStockValue id="Fact_749759593d504b6e8bcc87577354beb0" contextRef="c20190630" unitRef="U002" decimals="-3">115000</us-gaap:CommonStockValue>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_0e30dbc24c284b25bcdefe97fcb1d22c" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">276000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_c62b60572a9d4e22ba7da98db51998d8" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">1200000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_b5311ace716a46f4a5d712a3f2bf2d4b" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">1879000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_eb93298a891c483d94ad3f54bccfbb9b" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1031000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Contract with Customer, Liability, Revenue Recognized-->
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized id="Fact_667b2b205e064653b720e3449d4476eb" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">309000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:ContractWithCustomerLiabilityNoncurrent id="Fact_69a173de78e54d08b66852ccbeb8cfc3" contextRef="c20190630" unitRef="U002" decimals="-3">206000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
  <!--Deferred revenue, net of current portion-->
  <us-gaap:ContractWithCustomerLiabilityNoncurrent id="Fact_ada134bf695041049cc5b343480fd04f" contextRef="c20181231" unitRef="U002" decimals="-3">265000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
  <!--Contract with Customer, Liability-->
  <us-gaap:ContractWithCustomerLiability id="Fact_6176673b75cc44aba1cb7a021ca49b5f" contextRef="c20190630" unitRef="U002" decimals="-3">626000</us-gaap:ContractWithCustomerLiability>
  <!--Contract with Customer, Liability-->
  <us-gaap:ContractWithCustomerLiability id="Fact_75f443eb207f47c28da3a30d917c4e15" contextRef="c20181231" unitRef="U002" decimals="-3">699000</us-gaap:ContractWithCustomerLiability>
  <!--Deferred revenue-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_4723391c79e14c79908b6d9e04e51163" contextRef="c20190630" unitRef="U002" decimals="-3">357000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Deferred revenue-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_d530995545d74f43ab47121ad7b60c4b" contextRef="c20181231" unitRef="U002" decimals="-3">384000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Contract with Customer, Asset and Liability [Table Text Block]-->
  <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock id="Fact_1e273981aa5944fb8c5ab23731634cc3" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Contract balances&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Our contract liabilities consist of customer pre-payments and deferred revenue.&amp;#160; Customer prepayments are reported as &amp;#8220;Accrued Liabilities&amp;#8221; in current liabilities in the Condensed Consolidated Balance Sheets.&amp;#160; Customer prepayments represent customer payments made in advance of performance obligations in instances where credit has not been extended and are recognized as revenue when the performance obligation is complete.&amp;#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our restaurant solution terminals, prepaid subscription revenue for our BOHA! software, 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, 2019 or December 31, 2018.&amp;#160; For the first six months of 2019, we recognized revenue of $309 thousand related to our contract liabilities at December 31, 2018.&amp;#160; Total contract liabilities consist of the following:&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&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 colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;63&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;50&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;357&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;384&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;206&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;265&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total contract liabilities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;626&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;699&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue id="Fact_206882a655f1416dbdae26b63508b22d" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">7760000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue id="Fact_5ff7e55cc4bf408cb9e32fbd355b302d" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">5646000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue id="Fact_48d16b870cf04e37b293f792b03a0ec3" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">11110000</us-gaap:CostOfRevenue>
  <!--Cost of sales-->
  <us-gaap:CostOfRevenue id="Fact_ed91e8bb45a74f59b88221ae0bfacd05" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">14141000</us-gaap:CostOfRevenue>
  <!--Disaggregation of Revenue [Table Text Block]-->
  <us-gaap:DisaggregationOfRevenueTableTextBlock id="Fact_09570fbfebba48e1a5c1a13538a29782" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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="line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" 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="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restaurant solutions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,517&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;241&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,758&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS Automation and Banking&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,898&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;23&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,921&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and Gaming&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,916&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,198&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,114&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lottery&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;829&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;831&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Printrex&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;527&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;100&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;627&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,035&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;614&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,649&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,722&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,178&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;22,900&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit id="Fact_2e297f77481443cebcff02501fefd7e3" contextRef="c20190630" unitRef="U002" decimals="-3">0</us-gaap:DeferredRentCredit>
  <!--Deferred rent, net of current portion-->
  <us-gaap:DeferredRentCredit id="Fact_32de13f29d754d419b05c9d457efcf18" contextRef="c20181231" unitRef="U002" decimals="-3">250000</us-gaap:DeferredRentCredit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_116716090fc7423888b3ccc39f5bab08" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-70000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_aa22c8948f624aeda38cb6968ff5d357" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">24000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent id="Fact_055ed4abe5a84369a1979f12a4d3d556" contextRef="c20181231" unitRef="U002" decimals="-3">2198000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Deferred Tax Assets, Net of Valuation Allowance, Noncurrent-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent id="Fact_b28e44baf2124da18ec67e3eb55bb3e7" contextRef="c20190630" unitRef="U002" decimals="-3">2280000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_783ca1476b9a468c8b0acdd695d462de" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">480000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_e0b88c7fea3944b68a55d4b2b568b3e1" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">488000</us-gaap:DepreciationAndAmortization>
  <!--Dividends Payable, Date to be Paid-->
  <us-gaap:DividendPayableDateToBePaidDayMonthAndYear id="Fact_42213ed115d6438a964753ffb0299299" contextRef="c20190401to20190630">2019-06-14</us-gaap:DividendPayableDateToBePaidDayMonthAndYear>
  <!--Dividends Payable, Date of Record-->
  <us-gaap:DividendsPayableDateOfRecordDayMonthAndYear id="Fact_b45e2710a0cf400686656fbe9b1d6b13" contextRef="c20190401to20190630">2019-05-20</us-gaap:DividendsPayableDateOfRecordDayMonthAndYear>
  <!--Dividends, Common Stock, Cash-Retained Earnings [Member]-->
  <us-gaap:DividendsCommonStockCash id="Fact_3553188f7fad4f2aa579ec3754f023d5" contextRef="c20180401to20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">663000</us-gaap:DividendsCommonStockCash>
  <!--Dividends, Common Stock, Cash-Retained Earnings [Member]-->
  <us-gaap:DividendsCommonStockCash id="Fact_917fe04c4e2e4e9fa436753619dac1ce" contextRef="c20190401to20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">671000</us-gaap:DividendsCommonStockCash>
  <!--Dividends, Common Stock, Cash-Retained Earnings [Member]-->
  <us-gaap:DividendsCommonStockCash id="Fact_60cd1d86dbf44a8a9472152be61b9846" contextRef="c20180101to20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1336000</us-gaap:DividendsCommonStockCash>
  <!--Dividends, Common Stock, Cash-Retained Earnings [Member]-->
  <us-gaap:DividendsCommonStockCash id="Fact_c06b1125feed4f878be867f7ddc419c6" contextRef="c20190101to20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1339000</us-gaap:DividendsCommonStockCash>
  <!--Earnings per share-->
  <us-gaap:EarningsPerShareTextBlock id="Fact_5b11886ac85345a8a0b350dcc49cf6ea" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;5. 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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share data)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&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 colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;186&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,210&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;932&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,890&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic:&amp;#160;&amp;#160;Weighted average common shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,462&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,401&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,461&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,467&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;135&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;259&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;146&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;315&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; text-indent: -27pt; margin-left: 27pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted:&amp;#160;&amp;#160;Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,597&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,660&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,607&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,782&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 18pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.02&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.25&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 18pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.02&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; 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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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, 2019 and 2018, there were 542 thousand and 196 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, 2019 and 2018, there were 542 thousand and 147 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="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic id="Fact_2e127c08f0c84603b364e852bdff9cab" contextRef="c20190401to20190630" unitRef="U003" decimals="2">0.02</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic id="Fact_8ebbee3b74124df6b02c4f8f0de34760" contextRef="c20180401to20180630" unitRef="U003" decimals="2">0.16</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic id="Fact_342748a25cff4a0bbf095d661a1d4e7d" contextRef="c20190101to20190630" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareBasic>
  <!--Basic (in dollars per share)-->
  <us-gaap:EarningsPerShareBasic id="Fact_67928600ecd84e4892d55d2ab946306a" contextRef="c20180101to20180630" unitRef="U003" decimals="2">0.25</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_1f5d4cadb05a4b06ac516b2069252ed0" contextRef="c20180401to20180630" unitRef="U003" decimals="2">0.16</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_fe0a291982cf498c80879e8bd993f690" contextRef="c20190401to20190630" unitRef="U003" decimals="2">0.02</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_a35f976c98e34a2ba6c8af5c58100b2d" contextRef="c20190101to20190630" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_da32802551684a1b87cac37845504bde" contextRef="c20180101to20180630" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareDiluted>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_100cf71ae7dc4967803cd9b4374ca13a" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-19000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Effect of exchange rate changes on cash and cash equivalents-->
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_c805dd5eb5f44552be71957eba53a407" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-6000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent-Maximum [Member]-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate id="Fact_8c0c473760474228b32e57af0ba91384" contextRef="c20170101to20171231_RangeAxis_MaximumMember" unitRef="U004" decimals="INF">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <!--Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate id="Fact_ffdd3c1b970a47388f615d6079c0f5d7" contextRef="c20170101to20171231" unitRef="U004" decimals="INF">0.34</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations id="Fact_564dcb5b2c494aac81244f89e9e6821f" contextRef="c20190401to20190630" unitRef="U004" decimals="3">-0.163</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations id="Fact_aec1836b356e4f868c754e3f54452d8e" contextRef="c20180401to20180630" unitRef="U004" decimals="3">0.201</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations id="Fact_506e6c882b3844ff8f00c7da0010fd28" contextRef="c20180101to20180630" unitRef="U004" decimals="3">0.204</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Effective tax rate-->
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations id="Fact_69e63f636ae4480b8e27bda5bdb03e53" contextRef="c20190101to20190630" unitRef="U004" decimals="3">0.087</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <!--Excess Tax Benefit from Share-based Compensation, Financing Activities-->
  <us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities id="Fact_6dc9a6de00f0443dbfc4502755f80dd3" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-265000</us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities>
  <!--Excess Tax Benefit from Share-based Compensation, Financing Activities-->
  <us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities id="Fact_db24537828bb4b1cbd0a4d7e2514e539" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-214000</us-gaap:ExcessTaxBenefitFromShareBasedCompensationFinancingActivities>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued id="Fact_d664ac60168e4235bd55cae5b8405c08" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">177000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Extended Product Warranty Accrual, Increase for Warranties Issued-->
  <us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued id="Fact_e4b5b241f719492bbb058d0e2a5ad3e2" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">81000</us-gaap:ExtendedProductWarrantyAccrualWarrantiesIssued>
  <!--Extended Product Warranty Accrual, Noncurrent-->
  <us-gaap:ExtendedProductWarrantyAccrualNoncurrent id="Fact_85c7a68df8fe4660b6a4a208ab5af360" contextRef="c20190630" unitRef="U002" decimals="-3">48000</us-gaap:ExtendedProductWarrantyAccrualNoncurrent>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual id="Fact_1916ad09c9f540a9af0e149588b7fbdf" contextRef="c20171231" unitRef="U002" decimals="-3">267000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual id="Fact_672c75e7351040889cb3c140d727dbbd" contextRef="c20181231" unitRef="U002" decimals="-3">273000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual id="Fact_90dd656504634264a018e0d70fa877c9" contextRef="c20180630" unitRef="U002" decimals="-3">303000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual-->
  <us-gaap:ExtendedProductWarrantyAccrual id="Fact_a1470341746944da8323110786ab6dc2" contextRef="c20190630" unitRef="U002" decimals="-3">224000</us-gaap:ExtendedProductWarrantyAccrual>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments id="Fact_3c393881a1494302a701a4ee7dfa1d95" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">130000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Extended Product Warranty Accrual, Decrease for Payments-->
  <us-gaap:ExtendedProductWarrantyAccrualPayments id="Fact_db3be34f74df4439b0a52da0a9aafce8" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">141000</us-gaap:ExtendedProductWarrantyAccrualPayments>
  <!--Accrued product warranty liability, current-->
  <us-gaap:ExtendedProductWarrantyAccrualCurrent id="Fact_ce6dd1f61c0b4d10931367a67e69a7c0" contextRef="c20190630" unitRef="U002" decimals="-3">176000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization id="Fact_32103e99ca874af09e3ee453e7d0d23d" contextRef="c20181231" unitRef="U002" decimals="-3">3487000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Finite-Lived Intangible Assets, Accumulated Amortization-->
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization id="Fact_a7de4fc533c04320b8d19c96f6687fd6" contextRef="c20190630" unitRef="U002" decimals="-3">3597000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax id="Fact_1153c7592cf8412bb63f3bc6b08021f9" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-87000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--Foreign Currency Transaction Gain (Loss), before Tax-->
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax id="Fact_d75cab4f31b74022882686be20c4410a" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-90000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <!--Foreign Currency Transactions and Translations Policy [Policy Text Block]-->
  <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock id="Fact_f005eb16e867476f9167e6bd7cc6ac12" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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 exchange rate as of the date the transaction was recognized, with the resulting translation gain or loss recorded in &amp;#8220;Accumulated other comprehensive income (loss), net of tax&amp;#8221;, in the Condensed Consolidated Balance Sheets and Condensed Consolidated Statements of Changes in Shareholders&amp;#8217; Equity.&amp;#160;&amp;#160;Transaction gains and losses are included in &amp;#8220;Other, net&amp;#8221; 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&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_3e61dcc8a6054ad39a298df3d84f5ea6" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">2191000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_7d12b805ce2f4f4188854b07c42ee131" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">2111000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_189926e9314e4dbc8b3d6b24db292250" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">4323000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_cb3187a2225c431c95c986c467805f7e" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">4481000</us-gaap:GeneralAndAdministrativeExpense>
  <!--Goodwill-->
  <us-gaap:Goodwill id="Fact_00502cc6a35641ed9d3ac796a6ef0ae4" contextRef="c20190630" unitRef="U002" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Goodwill-->
  <us-gaap:Goodwill id="Fact_1fc03ea5193142c3b45331a866c145af" contextRef="c20181231" unitRef="U002" decimals="-3">2621000</us-gaap:Goodwill>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_4a5d8db806744a14bd267c2934e48e43" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">5704000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_f5ecbc6a4fe24d63a5ff329bb119ffd4" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">6991000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_0a917b045ce84fab8d45784beb2eb77c" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">11790000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_b25e55a3d35846a097f0cee54e11f959" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">12853000</us-gaap:GrossProfit>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments id="Fact_439b97f94cd5485bb2e7f2e0cfc20abc" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">160000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments id="Fact_f551af0a2138429da0942d73968f233c" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">1515000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments id="Fact_d6994c4213ec4a5aac1a1162acd4cf1c" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1021000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments id="Fact_fb68152448b24540b13ce41bd65233d7" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2373000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_1925efd1505e47f5b420e282153a6d34" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">305000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_1c3b40d8f04e44e784576b797d147823" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">-26000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_436a9866288e46c5bad2601398244e1a" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">89000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax provision-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_b57ed7cbc90b4f17ba29c02f67bacad0" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">483000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income taxes-->
  <us-gaap:IncomeTaxDisclosureTextBlock id="Fact_9290600dec344393ad8260da0d2bfff3" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;8. 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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We recorded an income tax benefit for the second quarter of 2019 of $26 thousand at an effective tax rate of -16.3 %, compared to an income tax provision during the second quarter of 2018 of $305 thousand at an effective tax rate of 20.1%.&amp;#160;&amp;#160;For the six months ended June 30, 2019, we recorded an income tax provision of $89 thousand at an effective tax rate of 8.7%, compared to an income tax provision during the six months ended June 30, 2018 of $483 thousand at an effective tax rate of 20.4%.&amp;#160;&amp;#160;The effective tax rate for the both the second quarter of 2019 and six months ended June 30, 2019 was lower as it included the foreign-derived intangible income (&amp;#8220;FDII&amp;#8221;) deduction under the Tax Cuts and Jobs Act (the &amp;#8220;Tax Reform Act&amp;#8221;) as well as near breakeven pre-tax income in the second quarter of 2019.&amp;#160; The FDII deduction was not included in the effective tax rate for the second quarter of 2018 or six months ended June 30, 2018 as the interpretive guidance for the deduction was not yet released.&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We are subject to U.S. federal income tax, as well as income tax in certain U.S. state and foreign jurisdictions.&amp;#160;&amp;#160;We have substantially concluded all U.S. federal, state and local income tax, and foreign tax regulatory examination matters through 2014.&amp;#160;&amp;#160;However, our federal tax returns for the years 2015 through 2017 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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of June 30, 2019, 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 that $25 thousand of the $104 thousand of unrecognized tax benefits will reverse in 2019 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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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, 2019, we had $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 style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;In February 2018, the FASB issued ASU 2018-02, &lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;&amp;#8220;Income Statement-Reporting Comprehensive Income (Topic 220): Reclassification of Certain Tax Effects from Accumulated Other Comprehensive income,&amp;#8221;&lt;/font&gt; which provides a new standard that permits entities to make a one-time reclassification from accumulated other comprehensive loss (&amp;#8220;AOCL&amp;#8221;) to retained earnings for the stranded tax effects resulting from the newly enacted corporate tax rates under the Tax Reform Act. We adopted ASU 2018-02 on January 1, 2019 and elected not to reclassify the income tax effects of the Tax Reform Act from AOCL to retained earnings.&amp;#160; We continue to release disproportionate income tax effects from AOCL based on the aggregate portfolio approach.&amp;#160; The adoption of ASU 2018-02 did not have an impact on our Condensed Consolidated Financial Statements.&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities id="Fact_72389cadd5974463be27b7fa91ef53ff" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-188000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Accrued liabilities and other liabilities-->
  <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities id="Fact_c9d52f5cf2604d1fa7955c2db8c5a440" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-566000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
  <!--Increase (Decrease) in Prepaid Taxes-->
  <us-gaap:IncreaseDecreaseInPrepaidTaxes id="Fact_a65b56c3789c4ea1a151c21b7bf8b861" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-228000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
  <!--Increase (Decrease) in Prepaid Taxes-->
  <us-gaap:IncreaseDecreaseInPrepaidTaxes id="Fact_bd5b8cce81c7435695dc2fdd8054006f" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-87000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_639a921d82fa4231a0638079535307fb" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">1395000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_effae8be89c14a23a7eb4ffb7ae2a359" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">296000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_47812c50c9ed4017b636f79761c53911" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1402000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_925f8876dce84155ae2ad0465f4b8221" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2513000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Receivables-->
  <us-gaap:IncreaseDecreaseInReceivables id="Fact_6c09aa2b500641be97ead62da00c38cb" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-1678000</us-gaap:IncreaseDecreaseInReceivables>
  <!--Increase (Decrease) in Receivables-->
  <us-gaap:IncreaseDecreaseInReceivables id="Fact_debeec736a9146b2b7ef6d5754adf5a6" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-678000</us-gaap:IncreaseDecreaseInReceivables>
  <!--Increase (Decrease) in Other Operating Assets-->
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets id="Fact_7f414295c2f242dfb79e0e3b87691c15" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-94000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Increase (Decrease) in Other Operating Assets-->
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets id="Fact_9e71e8ab6ab64e259f240852a66e270c" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">328000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <!--Add: Dilutive effect of outstanding options and restricted stock units as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements id="Fact_221d2799a79d4e0d8585fd3b0698ac23" contextRef="c20190101to20190630" unitRef="U001" decimals="-3">146000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options and restricted stock units as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements id="Fact_5406579c7a804695af908e8dcb4ff91d" contextRef="c20180401to20180630" unitRef="U001" decimals="-3">259000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options and restricted stock units as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements id="Fact_75866b6a1cb744398d037d6101cbec0e" contextRef="c20180101to20180630" unitRef="U001" decimals="-3">315000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Add: Dilutive effect of outstanding options and restricted stock units as determined by the treasury stock method (in shares)-->
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements id="Fact_c019a886a1964fbeb5c423443e4b5dbb" contextRef="c20190401to20190630" unitRef="U001" decimals="-3">135000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <!--Intangible assets, net of accumulated amortization of $3,542, and $3,487, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill id="Fact_4162b17bec9f4a2d8584a968734734bc" contextRef="c20190630" unitRef="U002" decimals="-3">691000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Intangible assets, net of accumulated amortization of $3,542, and $3,487, respectively-->
  <us-gaap:IntangibleAssetsNetExcludingGoodwill id="Fact_a01118c02f6d48f29824ad99997185a2" contextRef="c20181231" unitRef="U002" decimals="-3">797000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet id="Fact_1a281809ccb14224a869551e26a53c0a" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">-7000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet id="Fact_1ea4808eb26242d3be40fa7530995092" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">-6000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet id="Fact_019c84239c1c416daad89b18cdddcc73" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-14000</us-gaap:InterestIncomeExpenseNet>
  <!--Interest, net-->
  <us-gaap:InterestIncomeExpenseNet id="Fact_4338bb31d9754cf09eabb9615ebf6d59" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-13000</us-gaap:InterestIncomeExpenseNet>
  <!--Inventory Disclosure [Text Block]-->
  <us-gaap:InventoryDisclosureTextBlock id="Fact_dd2da62226fa4226a8fe1b045e954a45" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;3. 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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of inventories, net were:&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 12.3pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;8,551&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,593&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Work-in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;29&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;5,683&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,213&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;14,237&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,835&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves id="Fact_5a02e54b219c4bbdbdba34f707f1371f" contextRef="c20181231" unitRef="U002" decimals="-3">6213000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoodsNetOfReserves id="Fact_a29473505d4343e08abb24c759f8cd5a" contextRef="c20190630" unitRef="U002" decimals="-3">5683000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <!--Inventories, net-->
  <us-gaap:InventoryNet id="Fact_539ad57596d7414096c14039122b6da4" contextRef="c20190630" unitRef="U002" decimals="-3">14237000</us-gaap:InventoryNet>
  <!--Inventories, net-->
  <us-gaap:InventoryNet id="Fact_f564c6e47bda46efba341d7d6efeeb91" contextRef="c20181231" unitRef="U002" decimals="-3">12835000</us-gaap:InventoryNet>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves id="Fact_492d4fa616f044f8bcb31b3599dfcc23" contextRef="c20181231" unitRef="U002" decimals="-3">6593000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Raw materials and purchased component parts-->
  <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves id="Fact_5314fc869ff04a598405eebf55683c42" contextRef="c20190630" unitRef="U002" decimals="-3">8551000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
  <!--Work-in-process-->
  <us-gaap:InventoryWorkInProcessNetOfReserves id="Fact_6b79af0e604c4b0a8662ca4f9e94ec50" contextRef="c20181231" unitRef="U002" decimals="-3">29000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <!--Work-in-process-->
  <us-gaap:InventoryWorkInProcessNetOfReserves id="Fact_7797eed9a4c24c89a9fef5afec1055ac" contextRef="c20190630" unitRef="U002" decimals="-3">3000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <!--2022-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour id="Fact_9a32a427116c4aa0afb101cfec7e0b51" contextRef="c20190630" unitRef="U002" decimals="-3">434000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <!--Lessee, Operating Leases [Text Block]-->
  <us-gaap:LesseeOperatingLeasesTextBlock id="Fact_09fe3f538ad64d86856232a7f8852a7d" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7. Leases&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;ASU 2016-02,&lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt; &amp;#8220;Leases&amp;#8221;&lt;/font&gt;, which was codified in, and is referred to in this Report as, ASC 842, became effective for reporting periods beginning after December 15, 2018. The adoption requires a modified retrospective transition approach, applying the new standard to all leases existing at the date of initial application. An entity may choose to use either (1) its effective date or (2) the beginning of the earliest comparative period presented in the financial statements as its date of initial application. The Company has elected to adopt the standard using the effective date, January 1, 2019, as its date of initial application. Consequently, financial information will not be updated, and the disclosures required under the new standard will not be provided for dates and periods before January 1, 2019.&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;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. 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. 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. Leases with a term of 12 months or less will be accounted for based on existing guidance for operating leases. If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient which allows prospective transition to ASC 842 on January 1, 2019. Under this transition practical expedient, we did not reassess lease classification, embedded leases or initial direct costs. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.&amp;#160; The adoption of ASC 842 had no effect on our Consolidated Statement of Income or Consolidated Statement of Cash Flows. Upon adoption of ASC 842, we recorded a $3.7 million right-of-use asset and a $3.9 million lease liability. The adoption of the new standard had no impact on retained earnings.&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We enter into lease agreements for the use of real estate space and certain other&lt;font style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;&amp;#160;&lt;/font&gt;equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in Right of use assets and Lease liabilities in our Condensed Consolidated Balance Sheet.&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&amp;#160; Our lease right of use assets exclude lease incentives. Our leases have remaining lease terms of one year to eight years, some of which include options to extend. The majority of our leases with options to extend provide for extensions of up to five years with the ability to terminate the lease within one year. The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.&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="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating lease expense for the three and six months ending June 30, 2019 was $254 thousand and $509 thousand, respectively.&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;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating cash flows from leases&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(515&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The maturity of the Company&amp;#8217;s operating lease liabilities as of June 30, 2019 are 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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;518&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2020&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,042&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;434&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2023&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;268&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Thereafter&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;888&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 13.45pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,860&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(365&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 13.45pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,495&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Prior to the adoption of ASC 842, rental commitments on an undiscounted basis were approximately $4.3 million at December 31, 2018 under non-cancelable operating leases and were payable as follows: $1.0 million in 2019; $1.0 million in 2020; $0.7 million in 2021; $0.4 million in 2022, $0.3 million in 2023 and $0.9 million&amp;#160; thereafter.&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;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <!--Lessee, Operating Lease, Liability, Maturity [Table Text Block]-->
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock id="Fact_f9c5b54c959f433c9e7ea1e8d8eff337" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The maturity of the Company&amp;#8217;s operating lease liabilities as of June 30, 2019 are 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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;518&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2020&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,042&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;434&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2023&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;268&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Thereafter&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;888&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 13.45pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,860&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(365&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 13.45pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,495&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <!--2020-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo id="Fact_aeceafeddd80454c9f9a34b7c4568e00" contextRef="c20190630" unitRef="U002" decimals="-3">1042000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <!--Less imputed interest-->
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount id="Fact_03c0a0fa2ab04d87a58b4761eb0b20d8" contextRef="c20190630" unitRef="U002" decimals="-3">365000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <!--2023-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive id="Fact_79154c55ce0c412eb8f9970f306704b6" contextRef="c20190630" unitRef="U002" decimals="-3">268000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
  <!--Lessee, Operating Lease, Liability, Payments, Due-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue id="Fact_0bd0b59e4b1d4270b253649825c818da" contextRef="c20190630" unitRef="U002" decimals="-3">3860000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <!--2019-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear id="Fact_b9b446daa9f14e9985367a39c5926044" contextRef="c20190630" unitRef="U002" decimals="-3">518000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
  <!--2021-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree id="Fact_1582a15705f2403283e28bec3d0068de" contextRef="c20190630" unitRef="U002" decimals="-3">710000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <!--Thereafter-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive id="Fact_efc82be812ad42ec8aa5b3f922a1c566" contextRef="c20190630" unitRef="U002" decimals="-3">888000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_7f35d983b317473cb69087f4518712b5" contextRef="c20181231" unitRef="U002" decimals="-3">7389000</us-gaap:Liabilities>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_f686aa0e75e44619af46db01e67ebf23" contextRef="c20190630" unitRef="U002" decimals="-3">10507000</us-gaap:Liabilities>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_1f7ff8137ef1425096d45dab7d1cb882" contextRef="c20181231" unitRef="U002" decimals="-3">34956000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_9658a91177134709b5e0b67a4077fe7e" contextRef="c20190630" unitRef="U002" decimals="-3">37938000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent id="Fact_3f0dd42fad7b409d9cee07a4cea328db" contextRef="c20181231" unitRef="U002" decimals="-3">757000</us-gaap:LiabilitiesNoncurrent>
  <!--Liabilities, Noncurrent-->
  <us-gaap:LiabilitiesNoncurrent id="Fact_65d3ba69a3124268a7da30f17a385571" contextRef="c20190630" unitRef="U002" decimals="-3">2953000</us-gaap:LiabilitiesNoncurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_167b555f3a194b3086c0a3119d218320" contextRef="c20190630" unitRef="U002" decimals="-3">7554000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_807cfda99b5742e3be4bd8d4185eb918" contextRef="c20181231" unitRef="U002" decimals="-3">6632000</us-gaap:LiabilitiesCurrent>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_f02aa6002b4b4e0fadba65cd32ee59a7" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-3493000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_ff1b8d3fe4384dbaa947694d34fe5fde" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-1553000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_33cca87ba3a0481ab780a5cde4c68b16" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-751000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_ffef7019a4b048058083c2761f2a6168" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-426000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_4ba559c506b84729bcc78b9e7232fcab" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2512000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_766065b20805446ebd0f146e05107413" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1591000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_6cd0bac0ba71428ab83e660a59ce094b" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">1210000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_7b02fdf4ba184e7e80156577774bfb1a" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">186000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_450e56c533244edb95eb66cb8167862c" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">932000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_9c0eba613a98475b9b3c9ef87ab28979" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">1890000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_5f5bbc2017e34c2ab6af40543b787eb8" contextRef="c20180401to20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1210000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_c78465daaa9f45ababb2caf03fe0768c" contextRef="c20190401to20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">186000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_ded3d43ffdf14b51a3923a3db20c4cb0" contextRef="c20190101to20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">932000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_e7001ce85be44cb2926aa808b208a2df" contextRef="c20180101to20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1890000</us-gaap:NetIncomeLoss>
  <!--Nonoperating Income (Expense)-->
  <us-gaap:NonoperatingIncomeExpense id="Fact_3a1db6db1e1b45a5b155d4e309a0f23a" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">-103000</us-gaap:NonoperatingIncomeExpense>
  <!--Nonoperating Income (Expense)-->
  <us-gaap:NonoperatingIncomeExpense id="Fact_adade5d3177c4482bbe0dd25752f3ac0" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">-149000</us-gaap:NonoperatingIncomeExpense>
  <!--Nonoperating Income (Expense)-->
  <us-gaap:NonoperatingIncomeExpense id="Fact_13139dd75a5c4238a86648f123493661" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-65000</us-gaap:NonoperatingIncomeExpense>
  <!--Nonoperating Income (Expense)-->
  <us-gaap:NonoperatingIncomeExpense id="Fact_1c13c3bf38834e4c8aa6b12c99828475" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-101000</us-gaap:NonoperatingIncomeExpense>
  <!--Operating Leases, Future Minimum Payments Due, Next Twelve Months-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent id="Fact_0a30426ad5ee4510976817c7db3c00c3" contextRef="c20181231" unitRef="U002" decimals="-5">1000000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
  <!--Operating Leases, Future Minimum Payments Due-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDue id="Fact_2e2e0ebcf12446168a364aa48b123da4" contextRef="c20181231" unitRef="U002" decimals="-5">4300000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
  <!--Operating Lease, Weighted Average Discount Rate, Percent-->
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent id="Fact_fcd5087e26dc426aa0c937564159f8fe" contextRef="c20190630" unitRef="U004" decimals="3">0.037</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <!--Operating Lease, Liability-->
  <us-gaap:OperatingLeaseLiability id="Fact_19d17adaeb2f445f9a1588d3e1c68943" contextRef="c20190630" unitRef="U002" decimals="-3">3495000</us-gaap:OperatingLeaseLiability>
  <!--Operating Lease, Right-of-Use Asset-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_55ea821aa0ac458cb5e58632e6fb14e2" contextRef="c20190630" unitRef="U002" decimals="-3">3276000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating Lease, Right-of-Use Asset-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_dd9a3647c4a84bd1ae4a513608462425" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating Lease, Right-of-Use Asset-Accounting Standards Update 2016-02 [Member]-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_c5aa9c0b4a04472894c81a4b4ad5dde1" contextRef="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201602Member" unitRef="U002" decimals="-5">3700000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating Lease, Expense-->
  <us-gaap:OperatingLeaseExpense id="Fact_0ddb1ef2615442feb9bfe5a3ab2149bc" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">254000</us-gaap:OperatingLeaseExpense>
  <!--Operating Lease, Expense-->
  <us-gaap:OperatingLeaseExpense id="Fact_9fdc4bccca1e45f194f4b64c7f0722a7" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">509000</us-gaap:OperatingLeaseExpense>
  <!--Operating Lease, Payments-->
  <us-gaap:OperatingLeasePayments id="Fact_dea2b4a2c72c4b8093340516fc2757b8" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">515000</us-gaap:OperatingLeasePayments>
  <!--Operating Lease, Liability, Current-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_e25b465de7744f5db9d21f54163f41e5" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Operating Lease, Liability, Current-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_fee3e256668b43e89833fec03f94cd5c" contextRef="c20190630" unitRef="U002" decimals="-3">923000</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_542a0b952b8842fea12d1d92c71c4c53" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">1618000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_600c1c785b3b4def9b9831c2d0adf6a6" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">309000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_873d030f0ab146bb8c0443490c6b9eee" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2474000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_eec40a541d6e4c2cb7023997d986eb83" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1086000</us-gaap:OperatingIncomeLoss>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_9c9c0ccfa2304c96a775fb4d4847a7f6" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">5373000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_d118b7b89d3846e3b21bc6ddb8224756" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">5395000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_525e942b007d4cbc811b4406e1c1dc18" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">10704000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_eae87e9d10af46279a55084b4ea9d77f" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">10379000</us-gaap:OperatingExpenses>
  <!--Operating Lease, Weighted Average Remaining Lease Term-->
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 id="Fact_c75d651295464a02a07b40a98cb52bc4" contextRef="c20190630">P5Y3M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <!--Operating Lease, Liability, Noncurrent-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_ca50bd02d4bb4e3d875b9ab55c0dbe22" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Operating Lease, Liability, Noncurrent-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_f9e954416d8048129c7ebc1f28920b66" contextRef="c20190630" unitRef="U002" decimals="-3">2572000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Operating Lease, Liability, Noncurrent-Accounting Standards Update 2016-02 [Member]-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_80fd1fc6f3674b1d878f659db75510e1" contextRef="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201602Member" unitRef="U002" decimals="-5">3900000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Operating Leases, Future Minimum Payments, Due in Four Years-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears id="Fact_07889635d4c64ea5ac674ae1c4c663dd" contextRef="c20181231" unitRef="U002" decimals="-5">400000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears>
  <!--Operating Leases, Future Minimum Payments, Due Thereafter-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter id="Fact_e4a5dddc01ef4688a6fc3be962eda3d7" contextRef="c20181231" unitRef="U002" decimals="-5">900000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter>
  <!--Operating Leases, Future Minimum Payments, Due in Three Years-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears id="Fact_3b2ed87f92e540a3a27e7a16ee7a629d" contextRef="c20181231" unitRef="U002" decimals="-5">700000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
  <!--Operating Leases, Future Minimum Payments, Due in Five Years-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears id="Fact_feb4f44dc50b413b8538dd33d5f88cbc" contextRef="c20181231" unitRef="U002" decimals="-5">300000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears>
  <!--Operating Leases, Future Minimum Payments, Due in Two Years-->
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears id="Fact_53a3582a756d42fb806f3e58de8a7e8d" contextRef="c20181231" unitRef="U002" decimals="-5">1000000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_2314952b0a424be488d0a8c4e9eb6bd3" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">90000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_b9f0c7abca304f62ac208e0a47e99b1c" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">-10000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_4837cb0b2c9e47f7a41c92922c2ab7c7" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-11000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_9b5a246918ae4f3ab2ca46659fe708a7" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">99000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_78f9b49b6aa94315a6d1707f94bc6543" contextRef="c20190401to20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">90000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_aa31f8214fd84c45864093748f72948a" contextRef="c20180401to20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-10000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_175549d7daeb4cf9ae6b860e65a2fa5f" contextRef="c20190101to20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">99000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_312b6824fdc4431d88d93f8808335849" contextRef="c20180101to20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-11000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_a4c0b3e36ab14d75aad373c18c29a018" contextRef="c20190630" unitRef="U002" decimals="-3">31000</us-gaap:OtherAssetsNoncurrent>
  <!--Other assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_cc6c1189b2ab4bacbf28686ae3336441" contextRef="c20181231" unitRef="U002" decimals="-3">31000</us-gaap:OtherAssetsNoncurrent>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent id="Fact_9113f605ba0849cf94d34445e6eb8ddd" contextRef="c20181231" unitRef="U002" decimals="-3">677000</us-gaap:OtherAssetsCurrent>
  <!--Other current assets-->
  <us-gaap:OtherAssetsCurrent id="Fact_fd89735579c3470db3bddc00bc913f25" contextRef="c20190630" unitRef="U002" decimals="-3">1005000</us-gaap:OtherAssetsCurrent>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_69006cd94761450691981ae940371593" contextRef="c20190630" unitRef="U002" decimals="-3">175000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other liabilities-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_877abcd7b82e4b30956561f1dd6f4431" contextRef="c20181231" unitRef="U002" decimals="-3">242000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_162c4dfa09184b3ab5b1301e84a052e8" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">-142000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_df364fc6fff94d16862ab9634bff5f06" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">-97000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_2f5fb38bd3c6449eb6b07cde551e530b" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">-52000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_d02cedf0cdad4de3b4657130d11bec23" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">-87000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock id="Fact_a97541a057234c408459a09f539fe3a3" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2000000</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock id="Fact_fee6d9dd3c0640408844d2d8f3d7db6c" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock id="Fact_c3af83d3372f4b66aa7d966991ea990c" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">1336000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock id="Fact_e0b924076cdb4800b3c5d76f143b8a4a" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">1339000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock id="Fact_97a5b483784b4af0ba9e3f003166835e" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">671000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payment of dividend on common stock-->
  <us-gaap:PaymentsOfDividendsCommonStock id="Fact_a0f110a08d3940e6b6d1a6e3bd8d4954" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">663000</us-gaap:PaymentsOfDividendsCommonStock>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_045844d562b943ed95e995cb384080f0" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">735000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_f21e5195d1f74841bc37e968d395c4ce" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">422000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Software-->
  <us-gaap:PaymentsToAcquireSoftware id="Fact_58651f844fbb4cd1887ba8aada6f4175" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">4000</us-gaap:PaymentsToAcquireSoftware>
  <!--Payments to Acquire Software-->
  <us-gaap:PaymentsToAcquireSoftware id="Fact_d41a0971fe1343dcb6e6d677c16a22ff" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">16000</us-gaap:PaymentsToAcquireSoftware>
  <!--Prepaid income taxes-->
  <us-gaap:PrepaidTaxes id="Fact_204963b8b1624bef8c89e3dceb8bcfb3" contextRef="c20181231" unitRef="U002" decimals="-3">809000</us-gaap:PrepaidTaxes>
  <!--Prepaid income taxes-->
  <us-gaap:PrepaidTaxes id="Fact_a3c2e46d33f94f2d9bd8d1604f5cd79e" contextRef="c20190630" unitRef="U002" decimals="-3">721000</us-gaap:PrepaidTaxes>
  <!--Proceeds from stock option exercises-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_8fd3fc8da3ea46648a9c0e136fb8013d" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">0</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from stock option exercises-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_9b6e3958b798408085c00e40746ed6c5" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">108000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Accrued product warranty liability-->
  <us-gaap:ProductWarrantyDisclosureTextBlock id="Fact_085ab662ffdb48839965a0fbdd98c680" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;4. 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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table summarizes the activity recorded in the accrued product warranty liability during the six months ended June 30, 2019 and 2018:&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 12.3pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;273&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;267&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranties issued&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;177&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranty settlements&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;(130&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;224&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;303&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of June 30, 2019, $176 thousand of the accrued product warranty liability were classified as current in "Accrued liabilities" in the Condensed Consolidated Balance Sheets and the remaining $48 thousand was classified as non-current in "Other liabilities".&lt;/div&gt;&lt;div style="line-height: 11.4pt;"&gt;&lt;br style="line-height: 11.4pt;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
  <!--Fixed assets, net of accumulated depreciation of $20,660 and $20,518, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet id="Fact_03e7c028a5ea4e7b96782e3e2fc82ae0" contextRef="c20181231" unitRef="U002" decimals="-3">2272000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Fixed assets, net of accumulated depreciation of $20,660 and $20,518, respectively-->
  <us-gaap:PropertyPlantAndEquipmentNet id="Fact_ec8b74b4017a46a290ab23b609ad8463" contextRef="c20190630" unitRef="U002" decimals="-3">2430000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent id="Fact_5fcde8181ccc43348895582b01d03845" contextRef="c20190630" unitRef="U002" decimals="-3">6349000</us-gaap:ReceivablesNetCurrent>
  <!--Accounts receivable, net-->
  <us-gaap:ReceivablesNetCurrent id="Fact_e90282f22d274697a2ef0bfd6db99ba3" contextRef="c20181231" unitRef="U002" decimals="-3">8025000</us-gaap:ReceivablesNetCurrent>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_0089d01ba901415d9e8148cfa4c3907d" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">1183000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_df285a6d0a2c4399ac00cadb63d2cc96" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">1115000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_0fa28d0d95d8495b8483024a78d51fe2" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">2280000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Engineering, design and product development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_19e467bcade54beb993fd2d021328d9f" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">2404000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_0395466ba00c411888508cec51913573" contextRef="c20181231" unitRef="U002" decimals="-3">27515000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Retained earnings-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_e09d3fcb94f94f67a5b70568b9a4e1e0" contextRef="c20190630" unitRef="U002" decimals="-3">27108000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_0cdb7975bdeb49f39e6bd930e149b0cc" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">11350000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_c6ebe3246c864b478048b716857ad74a" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">14751000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_04ec9b498e55478b8b96fcaa03da419b" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">22900000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_3870a33e7bec4869853d97dd5f556547" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">26994000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-POS Automation and Banking [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_015bd11b34aa4530b315dd579da4e5b8" contextRef="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember" unitRef="U002" decimals="-3">2921000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Casino and Gaming [Member]-International [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_156e8eda3c6c48ca92cd18d6658cdd55" contextRef="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">4198000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Lottery [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_29462f07d26f4f1ca447759ac6934437" contextRef="c20190101to20190630_ProductOrServiceAxis_LotteryMember" unitRef="U002" decimals="-3">831000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-International [Member]-Restaurant Solutions [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_37508d16f34f4ac18f62d36d19a80991" contextRef="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">241000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Casino and Gaming [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_39ac3d6f3d2c4e0d8037371c44ca4802" contextRef="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember" unitRef="U002" decimals="-3">11114000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-TransAct Services Group [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_41a0069b458144c5beda6bb1e08382f6" contextRef="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember" unitRef="U002" decimals="-3">5649000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-United States [Member]-Restaurant Solutions [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_594435c4132c4125a25ddd8fb9f48006" contextRef="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">1517000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Printrex [Member]-United States [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_6be73e54b4ba4816ae65eff32a560eda" contextRef="c20190101to20190630_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">527000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-POS Automation and Banking [Member]-International [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_80a9eb9ca8ab4412aa536d137f086ef9" contextRef="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">23000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-International [Member]-Lottery [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_9ef6bd6e9ed84a319f84b20b47b6d896" contextRef="c20190101to20190630_ProductOrServiceAxis_LotteryMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">2000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-United States [Member]-TransAct Services Group [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_a42fe219bf794d2db8b373dacd5df6de" contextRef="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">5035000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Casino and Gaming [Member]-United States [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_a454519fcc98403087861fa65425acb9" contextRef="c20190101to20190630_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">6916000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-TransAct Services Group [Member]-International [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_c26438bbe2b04ca5a17dbd86506c36ce" contextRef="c20190101to20190630_ProductOrServiceAxis_TransActServicesGroupMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">614000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Restaurant Solutions [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_c30a021e1bd34ebd8f084592e6c71bff" contextRef="c20190101to20190630_ProductOrServiceAxis_RestaurantSolutionsMember" unitRef="U002" decimals="-3">1758000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-Printrex [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_dfd691e4599640ddbaa17c3b9cd16810" contextRef="c20190101to20190630_ProductOrServiceAxis_PrintrexMember" unitRef="U002" decimals="-3">627000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-International [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_e4854f32c6544048b9886230ccec2dd9" contextRef="c20190101to20190630_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">5178000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-United States [Member]-Lottery [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_e84556649e1344d4b80614299e246fb0" contextRef="c20190101to20190630_ProductOrServiceAxis_LotteryMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">829000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-International [Member]-Printrex [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_f170c17f506b4224b4a7d8d93fd00b6b" contextRef="c20190101to20190630_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember" unitRef="U002" decimals="-3">100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-United States [Member]-POS Automation and Banking [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_f45fbe61c5894bd0bc069298c3c53d93" contextRef="c20190101to20190630_ProductOrServiceAxis_POSAutomationAndBankingMember_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">2898000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-United States [Member]-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_f5effccb92804c30b6db7cef98746444" contextRef="c20190101to20190630_StatementGeographicalAxis_US" unitRef="U002" decimals="-3">17722000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue, Remaining Performance Obligation, Amount-->
  <us-gaap:RevenueRemainingPerformanceObligation id="Fact_38be1b3b565e4442ada58f28a0055d06" contextRef="c20190630" unitRef="U002" decimals="-5">4300000</us-gaap:RevenueRemainingPerformanceObligation>
  <!--Revenue, Remaining Performance Obligation, Amount-2019-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligation id="Fact_51f0e681d07a497ab2604c43a05966aa" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0190401Member" unitRef="U002" decimals="-5">3800000</us-gaap:RevenueRemainingPerformanceObligation>
  <!--Revenue, Remaining Performance Obligation, Amount-2021-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligation id="Fact_7005660d1fc549cd90ae35ae01b67dd1" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0210401Member" unitRef="U002" xsi:nil="true" />
  <!--Revenue, Remaining Performance Obligation, Amount-2020-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligation id="Fact_8512f3c0bfea44e8aace7f011fd90dd7" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0200401Member" unitRef="U002" decimals="-5">400000</us-gaap:RevenueRemainingPerformanceObligation>
  <!--Revenue from Contract with Customer [Text Block]-->
  <us-gaap:RevenueFromContractWithCustomerTextBlock id="Fact_772eb5f4c5844c1386c4962dc85e167e" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2. Revenue&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="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&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;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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="line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" 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="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restaurant solutions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,517&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;241&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,758&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS Automation and Banking&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,898&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;23&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,921&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and Gaming&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,916&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,198&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,114&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lottery&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;829&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;831&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Printrex&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;527&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;100&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;627&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,035&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;614&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,649&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,722&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,178&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;22,900&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Contract balances&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Our contract liabilities consist of customer pre-payments and deferred revenue.&amp;#160; Customer prepayments are reported as &amp;#8220;Accrued Liabilities&amp;#8221; in current liabilities in the Condensed Consolidated Balance Sheets.&amp;#160; Customer prepayments represent customer payments made in advance of performance obligations in instances where credit has not been extended and are recognized as revenue when the performance obligation is complete.&amp;#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our restaurant solution terminals, prepaid subscription revenue for our BOHA! software, 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, 2019 or December 31, 2018.&amp;#160; For the first six months of 2019, we recognized revenue of $309 thousand related to our contract liabilities at December 31, 2018.&amp;#160; Total contract liabilities consist of the following:&lt;/div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;br /&gt;&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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 colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&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 colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;63&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;50&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;357&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;384&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;206&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;265&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total contract liabilities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;626&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;699&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Remaining performance obligations&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="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining performance obligations represent 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, 2019, the aggregate amount of the transaction price allocated to remaining performance obligations was $4.3 million.&amp;#160; The Company expects to recognize revenue on $3.8 million of its remaining performance obligations within the next 12 months, $0.4 million within the next 24 months and the balance of these remaining performance obligations within the next 36 months.&lt;/div&gt;&lt;div style="line-height: 12.3pt;"&gt;&lt;br style="line-height: 12.3pt;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
  <!--Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period-2020-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 id="Fact_aa8d57e7098e4e34a3cd777afd90d0f4" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0200401Member">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
  <!--Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period-2021-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 id="Fact_d0f9fc2e74d443e08a3762b27eae1311" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0210401Member">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
  <!--Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period-2019-04-01 [Member]-->
  <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 id="Fact_d6c2862944eb4871b2992750d0dae567" contextRef="c20190630_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_Two0190401Member">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
  <!--Schedule of Inventory, Current [Table Text Block]-->
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock id="Fact_449bb1aae5cc40338e54fb7bee4a2ee0" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of inventories, net were:&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 12.3pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;8,551&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,593&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Work-in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;29&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;5,683&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,213&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;14,237&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,835&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <!--Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]-->
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock id="Fact_f1d6fcf39338433292a371b18789b33d" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share data)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&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 colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;186&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,210&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;932&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,890&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic:&amp;#160;&amp;#160;Weighted average common shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,462&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,401&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,461&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,467&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&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;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;135&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;259&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;146&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;315&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; text-indent: -27pt; margin-left: 27pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted:&amp;#160;&amp;#160;Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,597&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,660&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7,607&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,782&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 18pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.02&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.25&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; margin-left: 18pt; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.02&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;0.12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; 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;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
  <!--Product warranty liability-->
  <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock id="Fact_114bd11365f5422fb5281985e183afa5" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table summarizes the activity recorded in the accrued product warranty liability during the six months ended June 30, 2019 and 2018:&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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="text-align: center; line-height: 12.3pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&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="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" 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 colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;273&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;267&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranties issued&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;177&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranty settlements&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;(130&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;224&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;303&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; 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;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense id="Fact_d8475cdde9044cdeaae93665b8460efa" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">2089000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense id="Fact_f65f4536cf87482aaa8ec0ffd90d8543" contextRef="c20180401to20180630" unitRef="U002" decimals="-3">2079000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense id="Fact_2b917b5f00bb4c02a3b155a75d44551b" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">3652000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and marketing-->
  <us-gaap:SellingAndMarketingExpense id="Fact_38ca630da2b8485292f1924689441521" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">3943000</us-gaap:SellingAndMarketingExpense>
  <!--Share-based compensation expense-->
  <us-gaap:ShareBasedCompensation id="Fact_a8f67d7c625a4e9f82f95d3ffac700c4" contextRef="c20180101to20180630" unitRef="U002" decimals="-3">337000</us-gaap:ShareBasedCompensation>
  <!--Share-based compensation expense-->
  <us-gaap:ShareBasedCompensation id="Fact_aed93051e9974a7fa50133f79dc49ff8" contextRef="c20190101to20190630" unitRef="U002" decimals="-3">386000</us-gaap:ShareBasedCompensation>
  <!--Shares Paid for Tax Withholding for Share Based Compensation-->
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation id="Fact_1314250dd5314c1f83ff9c3c3754d50a" contextRef="c20180401to20180630" unitRef="U001" decimals="INF">1825</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <!--Shares Paid for Tax Withholding for Share Based Compensation-->
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation id="Fact_26f18d8b7b1d41de99d0f85518fd058c" contextRef="c20190401to20190630" unitRef="U001" decimals="INF">1812</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <!--Shares Paid for Tax Withholding for Share Based Compensation-->
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation id="Fact_2b44f16573aa4d3980128b2ff17d17ff" contextRef="c20180101to20180630" unitRef="U001" decimals="INF">19044</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <!--Shares Paid for Tax Withholding for Share Based Compensation-->
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation id="Fact_44aee26a182a4f649110408d78ce4392" contextRef="c20190101to20190630" unitRef="U001" decimals="INF">21449</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_13dc3d82c0114bfaa5a2d02220cb02a8" contextRef="c20180401to20180630" unitRef="U001" decimals="INF">12350</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_a69e945cbe9842fb9aa7b76a1b65a5f3" contextRef="c20190401to20190630" unitRef="U001" decimals="INF">15900</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_2df58e3ae52a4a21b320983dbc13434c" contextRef="c20190101to20190630" unitRef="U001" decimals="INF">72898</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_6b07faa695b7433fa8f90bd26e4a67a5" contextRef="c20180101to20180630" unitRef="U001" decimals="INF">75138</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock Issued, Value, Stock Options Exercised, Net of Tax Benefit (Expense)-Additional Paid-in Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense id="Fact_349d301f0cd24c859bdc025feccfec08" contextRef="c20190401to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Stock Issued, Value, Stock Options Exercised, Net of Tax Benefit (Expense)-Additional Paid-in Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense id="Fact_5dbaf4369d064de8a5a89ca218f623db" contextRef="c20180401to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">14000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Stock Issued, Value, Stock Options Exercised, Net of Tax Benefit (Expense)-Additional Paid-in Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense id="Fact_4d2d3b96ebd14a4b9223eed54255b2b0" contextRef="c20180101to20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">108000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Stock Issued, Value, Stock Options Exercised, Net of Tax Benefit (Expense)-Additional Paid-in Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense id="Fact_fb39e8c970954c1cad747266bc4b11c4" contextRef="c20190101to20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercisedNetOfTaxBenefitExpense>
  <!--Common stock repurchased (in shares)-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_55f68c379101467fbe61c36fe162e2ba" contextRef="c20180401to20180630" unitRef="U001" decimals="INF">33630</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Common stock repurchased (in shares)-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_6eacc81b32c746a9bdabfbea11524f38" contextRef="c20190401to20190630" unitRef="U001" decimals="INF">0</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Common stock repurchased (in shares)-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_70e1d2fcf2064091b82ccae854590f22" contextRef="c20190101to20190630" unitRef="U001" decimals="INF">0</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Common stock repurchased (in shares)-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_8e0c09f8c9b94a08bb34d4c0745e5199" contextRef="c20180101to20180630" unitRef="U001" decimals="INF">156410</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Shareholders' equity-->
  <us-gaap:StockholdersEquityNoteDisclosureTextBlock id="Fact_21e46fbbb0694f8b949e33dd8030b3f2" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;6. Shareholders&amp;#8217; 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&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For the three months ended June 30, 2019, our Board of Directors declared a quarterly cash dividend of $0.09 per share, totaling $671 thousand, which was paid on June 14, 2019 to common shareholders of record at the close of business on May 20, 2019.&amp;#160;&amp;#160;For the three months ended June 30, 2018, dividends declared and paid totaled $663 thousand, or $0.09 per share.&amp;#160; Dividends declared and paid totaled $1.3 million, or $0.18 per share for both the six months ended June 30, 2019 and 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;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_44a7783108664c89a3ada0f221fd9737" contextRef="c20181231" unitRef="U002" decimals="-3">27567000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_b2fe93cf36f543ffb0c514ee0708fc81" contextRef="c20190630" unitRef="U002" decimals="-3">27431000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_12599568a9354d3e87bc488a5340b73d" contextRef="c20190331" unitRef="U002" decimals="-3">27628000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_226ce3b080c645e1aafc4e6fa5f550d3" contextRef="c20190331_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-32110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_39c252126d82439b9d380c920bde0ff5" contextRef="c20180331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">114000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_3d94d4ce2f684faeb58916d9b98fa3ae" contextRef="c20190331_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">115000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_488fda6dc41940d791e963d6ea2eb339" contextRef="c20180331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">24763000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_48d55958df954e168c7b872f189bdc32" contextRef="c20190331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">27593000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_49b1c3f6777a4e54b2823a9cca840389" contextRef="c20180331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">31362000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_cb9ecd7edcc04cab890b0c57dc53eaeb" contextRef="c20180331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-100000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_d6f187550f344a6c805fb419cbf639a0" contextRef="c20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-73000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_e75b956ab96a4d4e98c4fd719d1740b1" contextRef="c20180331_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-31672000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_ef7aac25618149399815839b38080ac8" contextRef="c20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">32103000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_f78b8c6cffe7439bb654554200c99f48" contextRef="c20180331" unitRef="U002" decimals="-3">24467000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_a02b29cec3df4df8bf0c937204cd1586" contextRef="c20171231" unitRef="U002" decimals="-3">26014000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_a8c6c347adb64bdbaeeb892fda170e00" contextRef="c20171231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">114000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_d3825d67406446fd8593229de75fa123" contextRef="c20181231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">115000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_0cc8cac99025411098aeb5afeef55ee0" contextRef="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">32129000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_2911bd55a348445995264d5c004120e2" contextRef="c20171231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">31353000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_3930a682783542ccb5ff87aaa195cc37" contextRef="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">27515000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_df291ecd20bf4661b1365d88d0d54618" contextRef="c20171231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">24756000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_4aca2660282e4975a1d23162f05ec9c9" contextRef="c20171231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-30110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_dc2b8aa9d1804bf9902632b2d33c3350" contextRef="c20181231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-32110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_264c521bc59d4fd282f440eebde9b005" contextRef="c20171231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-99000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_adbb7d3352ef48cfa66a84b3e481b123" contextRef="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-82000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_104088ce211142d58605402e1ba8e269" contextRef="c20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">17000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_3ed1e1b72708400fa2acb19f55658853" contextRef="c20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">32301000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_4bbe9ff98e26487ab6f125dee4731dae" contextRef="c20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">27108000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_9e81f66393ed4cc58dbfa8492f19a188" contextRef="c20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_a795381971a149b8b7694bb598e8c0bc" contextRef="c20190630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-32110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-in Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_ab8dd006f8594ee285533698ee2ddf19" contextRef="c20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">31533000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Retained Earnings [Member]-->
  <us-gaap:StockholdersEquity id="Fact_ba554f76c8b54e4f9e378a27d0c12314" contextRef="c20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">25310000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Treasury Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_cde7c3dd74e944e8a59ddb7bb778dd76" contextRef="c20180630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">-32110000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_fa53ef5ff94e4abfaace32f2eb13a312" contextRef="c20180630" unitRef="U002" decimals="-3">24737000</us-gaap:StockholdersEquity>
  <!--Treasury Stock, Value, Acquired, Cost Method-Treasury Stock [Member]-->
  <us-gaap:TreasuryStockValueAcquiredCostMethod id="Fact_00d0c59165b24ea69182474b4d8fe984" contextRef="c20190401to20190630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">0</us-gaap:TreasuryStockValueAcquiredCostMethod>
  <!--Treasury Stock, Value, Acquired, Cost Method-Treasury Stock [Member]-->
  <us-gaap:TreasuryStockValueAcquiredCostMethod id="Fact_d054405a184343bfa626ff34f68de8d3" contextRef="c20180401to20180630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">438000</us-gaap:TreasuryStockValueAcquiredCostMethod>
  <!--Treasury Stock, Value, Acquired, Cost Method-Treasury Stock [Member]-->
  <us-gaap:TreasuryStockValueAcquiredCostMethod id="Fact_be3ffdf4e2c44ec8bba2ebc5516ee47b" contextRef="c20180101to20180630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">2000000</us-gaap:TreasuryStockValueAcquiredCostMethod>
  <!--Treasury Stock, Value, Acquired, Cost Method-Treasury Stock [Member]-->
  <us-gaap:TreasuryStockValueAcquiredCostMethod id="Fact_e4b06c4a234445489a41ef0094a3c2a9" contextRef="c20190101to20190630_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U002" decimals="-3">0</us-gaap:TreasuryStockValueAcquiredCostMethod>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue id="Fact_5c98b1f6e40b40a6a289269d629aeac9" contextRef="c20181231" unitRef="U002" decimals="-3">32110000</us-gaap:TreasuryStockValue>
  <!--Treasury Stock, Value-->
  <us-gaap:TreasuryStockValue id="Fact_629c93fa4f3a4cd4866e739f55ac4da9" contextRef="c20190630" unitRef="U002" decimals="-3">32110000</us-gaap:TreasuryStockValue>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares id="Fact_896ed394871345d3917240f185a8dbb9" contextRef="c20181231" unitRef="U001" decimals="INF">4044842</us-gaap:TreasuryStockShares>
  <!--Treasury stock (in shares)-->
  <us-gaap:TreasuryStockShares id="Fact_d38b756eab464093845b2f0f63f209ce" contextRef="c20190630" unitRef="U001" decimals="INF">4044842</us-gaap:TreasuryStockShares>
  <!--Unrecognized Tax Benefits that Would Impact Effective Tax Rate-->
  <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate id="Fact_2ee89f2000ac47488cd5df9f33f76be5" contextRef="c20190630" unitRef="U002" decimals="-3">104000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
  <!--Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations-->
  <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations id="Fact_b67bcab35b50471b853ae6faa9b9a8af" contextRef="c20190401to20190630" unitRef="U002" decimals="-3">25000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
  <!--Accrued interest and penalties related to uncertain tax positions-->
  <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued id="Fact_70ff3f238ca14b2db2a5982904352087" contextRef="c20190630" unitRef="U002" decimals="-3">23000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_63d7834c27af40fe9c0ec16d5b2243a7" contextRef="c20180401to20180630" unitRef="U001" decimals="-3">7401000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_bbcf641ce6ee40d5938312dee3e4e462" contextRef="c20190401to20190630" unitRef="U001" decimals="-3">7462000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_2520878586e8406da51d097af0e4c438" contextRef="c20180101to20180630" unitRef="U001" decimals="-3">7467000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Basic (in shares)-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_682080442a5a4275a5b0a5c0093ff30d" contextRef="c20190101to20190630" unitRef="U001" decimals="-3">7461000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_453d6b521cfb4f6ca2f02fa2206c73f6" contextRef="c20190401to20190630" unitRef="U001" decimals="-3">7597000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_cf52769b1cbf4306b0535843ebb32af3" contextRef="c20180401to20180630" unitRef="U001" decimals="-3">7660000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_392cac38b1c541399540500f9a6c3cf4" contextRef="c20190101to20190630" unitRef="U001" decimals="-3">7607000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_cea6af3dd8de4c0fa86c2c981bae3f8d" contextRef="c20180101to20180630" unitRef="U001" decimals="-3">7782000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Operating Lease, Right-of-Use Asset, Accumulated Amortization-->
  <tact:OperatingLeaseRightOfUseAssetAccumulatedAmortization id="Fact_1a125df3e1404e7a86ae3fff77cd1eea" contextRef="c20190630" unitRef="U002" decimals="-3">420000</tact:OperatingLeaseRightOfUseAssetAccumulatedAmortization>
  <!--Operating Lease, Right-of-Use Asset, Accumulated Amortization-->
  <tact:OperatingLeaseRightOfUseAssetAccumulatedAmortization id="Fact_6083a9a3c0bf4269b37685b30b1e6d74" contextRef="c20181231" unitRef="U002" decimals="-3">0</tact:OperatingLeaseRightOfUseAssetAccumulatedAmortization>
  <!--Extended Product Warranty Period-Maximum [Member]-->
  <tact:ExtendedProductWarrantyPeriod id="Fact_88be2f4df41f4d1b9ecc0141994e76c6" contextRef="c20190101to20190630_RangeAxis_MaximumMember">P24M</tact:ExtendedProductWarrantyPeriod>
  <!--Contract with Customer, Liability for Customer Prepayments, Current-->
  <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent id="Fact_43f3c5598a344ceaafc49e7613e14c1b" contextRef="c20190630" unitRef="U002" decimals="-3">63000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
  <!--Contract with Customer, Liability for Customer Prepayments, Current-->
  <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent id="Fact_775529fbc0aa44e19c610016aa473559" contextRef="c20181231" unitRef="U002" decimals="-3">50000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
  <!--Lessee, Operating Lease, Remaining Term of Contract-Minimum [Member]-->
  <tact:LesseeOperatingLeaseRemainingTermOfContract id="Fact_06a79827f94b4da685de6d120255151b" contextRef="c20190101to20190630_RangeAxis_MinimumMember">P1Y</tact:LesseeOperatingLeaseRemainingTermOfContract>
  <!--Lessee, Operating Lease, Remaining Term of Contract-Maximum [Member]-->
  <tact:LesseeOperatingLeaseRemainingTermOfContract id="Fact_2760bfe9e8fc4a9fb7b2511d74361f4e" contextRef="c20190101to20190630_RangeAxis_MaximumMember">P8Y</tact:LesseeOperatingLeaseRemainingTermOfContract>
  <!--Lessee, Operating Lease, Option to Extend Term-Maximum [Member]-->
  <tact:LesseeOperatingLeaseOptionToExtendTerm id="Fact_183534a82b1c4437a6d7d452481eb912" contextRef="c20190101to20190630_RangeAxis_MaximumMember">P5Y</tact:LesseeOperatingLeaseOptionToExtendTerm>
  <!--Lessee, Operating Lease, Option to Terminate Term-Maximum [Member]-->
  <tact:LesseeOperatingLeaseOptionToTerminateTerm id="Fact_3187f31040d2456f96ed1de43ea90f3c" contextRef="c20190101to20190630_RangeAxis_MaximumMember">P1Y</tact:LesseeOperatingLeaseOptionToTerminateTerm>
  <!--Lessee, Operating Lease, Description [Table Text Block]-->
  <tact:LesseeOperatingLeaseDescriptionTableTextBlock id="Fact_3a6e4d43d94845ed8b23a663f5c524ee" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&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;&lt;/div&gt;</tact:LesseeOperatingLeaseDescriptionTableTextBlock>
  <!--Lessee, Operating Lease, Supplemental Disclosure for Cash Flows [Table Text Block]-->
  <tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock id="Fact_31cd4b5a2f6f48589645f24454f3d8f8" contextRef="c20190101to20190630">&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 9pt;"&gt;&lt;div&gt;&lt;div style="text-align: justify; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (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-family: 'Times New Roman', Times, serif; font-size: 9pt; text-align: left; color: #000000; 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 colspan="1" 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 solid 2px;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Six Months Ended&lt;/div&gt;&lt;div style="text-align: center; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;June 30, 2019&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="text-align: left; line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating cash flows from leases&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(515&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="line-height: 14.4pt;"&gt;&lt;div style="line-height: 11.4pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&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;&lt;/div&gt;</tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock>
</xbrl>
