<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by EDGARfilings PROfile 6.2.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/2019-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/2019-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/2019-01-31" xmlns:srt="http://fasb.org/srt/2019-01-31" xmlns:acmr="http://acmrcsh.com/20190930" xmlns="http://www.xbrl.org/2003/instance">
  <link:schemaRef xlink:type="simple" xlink:href="acmr-20190930.xsd" />
  <xbrli:context id="c20190101to20190930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191105_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-11-05</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191105_StatementClassOfStockAxis_CommonClassBMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-11-05</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementClassOfStockAxis_CommonClassBMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementClassOfStockAxis_CommonClassBMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20171231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
        <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_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <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="c20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20180630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20190630_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20190630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</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">0001680062</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="c20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20171231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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="c20190630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
        <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="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180930_StatementEquityComponentsAxis_RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20171108_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-11-08</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-08-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170913to20170913_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-09-13</xbrli:startDate>
      <xbrli:endDate>2017-09-13</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170913to20170913_StatementClassOfStockAxis_CommonClassBMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-09-13</xbrli:startDate>
      <xbrli:endDate>2017-09-13</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ShengweiResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190617to20190617_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-17</xbrli:startDate>
      <xbrli:endDate>2019-06-17</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190612to20190612_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-12</xbrli:startDate>
      <xbrli:endDate>2019-06-12</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201811Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201811Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TransportationEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit12Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit7Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit7Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit6Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit6Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit8Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit1Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit1Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit4Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit4Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit11Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit7Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit7Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit3Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit3Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit10Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit9Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit3Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit3Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit8Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit5Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit5Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit12Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit2Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit2Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit4Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit4Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit11Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_LineOfCredit9Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit2Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit2Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit10Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit1Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit1Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit5Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit5Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_LineOfCredit6Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit6Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit1Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit1Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit7Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit7Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit3Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit3Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit11Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit11Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit6Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit6Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit5Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit5Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit2Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit2Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit12Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit12Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit10Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit10Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit8Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit8Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit9Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit9Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_DebtInstrumentAxis_LineOfCredit4Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:LineOfCredit4Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToPolytetrafluoroethyleneMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_OtherMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:OtherMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToElectroCopperPlatingProjectMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_OtherMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:OtherMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToPolytetrafluoroethyleneMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToStressFreePolishingProjectMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToStressFreePolishingProjectMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToElectroCopperPlatingProjectMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-27</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-09-11</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-09-11</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190905to20190905_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCompanyLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-09-05</xbrli:startDate>
      <xbrli:endDate>2019-09-05</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170818_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-08-18</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengyiSemiconductorTechnologyCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170314to20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-03-14</xbrli:startDate>
      <xbrli:endDate>2017-03-14</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170930to20170930_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-09-30</xbrli:startDate>
      <xbrli:endDate>2017-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170929_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-09-29</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180426to20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-26</xbrli:startDate>
      <xbrli:endDate>2018-04-26</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-04-26</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20181231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShanghaiZhangjiangGroupCoLtdMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20161209_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-09</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-08-14</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-03-14</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-08-14</xbrli:startDate>
      <xbrli:endDate>2019-08-14</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180330_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180330_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-03-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SeniorNotesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180330to20180330_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-03-30</xbrli:startDate>
      <xbrli:endDate>2018-03-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-08-01</xbrli:startDate>
      <xbrli:endDate>2019-08-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190831_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-08-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20181231_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember_TitleOfIndividualAxis_DirectorMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember_TitleOfIndividualAxis_DirectorMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_AwardTypeAxis_EmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20181231_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_AwardTypeAxis_EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180701to20180930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20180101to20180930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">acmr:ShareBasedPaymentArrangementNonEmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20170101to20171231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_RangeAxis_MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190930_RangeAxis_MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</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-09-30</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>
  <xbrli:unit id="U005">
    <xbrli:measure>iso4217:CNY</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U006">
    <xbrli:measure>acmr:Investor</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U007">
    <xbrli:measure>acmr:Vote</xbrli:measure>
  </xbrli:unit>
  <!--Amendment Flag-->
  <dei:AmendmentFlag id="Fact_537b408c4ba444228e91c076226d4a39" contextRef="c20190101to20190930">false</dei:AmendmentFlag>
  <!--Current Fiscal Year End Date-->
  <dei:CurrentFiscalYearEndDate id="Fact_d8c17a8e76254ac294a63827b3604f8e" contextRef="c20190101to20190930">--12-31</dei:CurrentFiscalYearEndDate>
  <!--Document Period End Date-->
  <dei:DocumentPeriodEndDate id="Fact_18c917db21d343a89de7f44083f21407" contextRef="c20190101to20190930">2019-09-30</dei:DocumentPeriodEndDate>
  <!--Entity Address, State or Province-->
  <dei:EntityAddressStateOrProvince id="Fact_396c783bcb16489aa3cc8e77e4e87308" contextRef="c20190101to20190930">CA</dei:EntityAddressStateOrProvince>
  <!--Entity Current Reporting Status-->
  <dei:EntityCurrentReportingStatus id="Fact_bb3b0fe768de4b5293477239379f9acc" contextRef="c20190101to20190930">Yes</dei:EntityCurrentReportingStatus>
  <!--Entity Filer Category-->
  <dei:EntityFilerCategory id="Fact_962e4814f3b6428fb716093396088c83" contextRef="c20190101to20190930">Non-accelerated Filer</dei:EntityFilerCategory>
  <!--Entity Registrant Name-->
  <dei:EntityRegistrantName id="Fact_d1474b3a9f294ee4995858ca4b25a217" contextRef="c20190101to20190930">ACM Research, Inc.</dei:EntityRegistrantName>
  <!--Entity Central Index Key-->
  <dei:EntityCentralIndexKey id="Fact_94bbfd49b2da455d89c2cefee149b9ca" contextRef="c20190101to20190930">0001680062</dei:EntityCentralIndexKey>
  <!--Entity Common Stock, Shares Outstanding-Common Class A [Member]-->
  <dei:EntityCommonStockSharesOutstanding id="Fact_b2df5e5eccd74c05b2d8df347b4a1f5f" contextRef="c20191105_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16333879</dei:EntityCommonStockSharesOutstanding>
  <!--Entity Common Stock, Shares Outstanding-Common Class B [Member]-->
  <dei:EntityCommonStockSharesOutstanding id="Fact_e15cb8c9472c48b8803489718bec7361" contextRef="c20191105_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</dei:EntityCommonStockSharesOutstanding>
  <!--Document Fiscal Year Focus-->
  <dei:DocumentFiscalYearFocus id="Fact_8b1e65e917d54efd9df13112573d1505" contextRef="c20190101to20190930">2019</dei:DocumentFiscalYearFocus>
  <!--Document Fiscal Period Focus-->
  <dei:DocumentFiscalPeriodFocus id="Fact_10e31068a42e437884393abc1851e30b" contextRef="c20190101to20190930">Q3</dei:DocumentFiscalPeriodFocus>
  <!--Document Type-->
  <dei:DocumentType id="Fact_6dd49bfae546403da5722dd83472f420" contextRef="c20190101to20190930">10-Q</dei:DocumentType>
  <!--Entity Interactive Data Current-->
  <dei:EntityInteractiveDataCurrent id="Fact_0bf51a9a74324682801820077d321eb0" contextRef="c20190101to20190930">Yes</dei:EntityInteractiveDataCurrent>
  <!--Entity Shell Company-->
  <dei:EntityShellCompany id="Fact_328b1d22617444d387a0c4f6ba680531" contextRef="c20190101to20190930">false</dei:EntityShellCompany>
  <!--Entity Emerging Growth Company-->
  <dei:EntityEmergingGrowthCompany id="Fact_ad82e707a6d44dc1ba7b4da752463bce" contextRef="c20190101to20190930">true</dei:EntityEmergingGrowthCompany>
  <!--Entity Ex Transition Period-->
  <dei:EntityExTransitionPeriod id="Fact_ea8121196cb345c594a0fa8fa73074b3" contextRef="c20190101to20190930">true</dei:EntityExTransitionPeriod>
  <!--Entity Small Business-->
  <dei:EntitySmallBusiness id="Fact_28d7bfc8e2ab4e94ae82ff889fdef2e9" contextRef="c20190101to20190930">true</dei:EntitySmallBusiness>
  <!--Accounts payable-related party-Ninebell Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_36fafc420c104ccea2140b1bc23ca8f8" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">809000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts payable-related party-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_71654e86397f445c86e491a8297e9582" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">496000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts payable-related party-Ninebell Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_9606da9eb9db43f886e350de5452fb16" contextRef="c20181231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">1477000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_5beaa67e0faa45d0aa95da6a73f100ac" contextRef="c20190930" unitRef="U002" decimals="-3">15440000</us-gaap:AccountsPayableCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_78755acb51f24af5bcf0d78afba5e56a" contextRef="c20181231" unitRef="U002" decimals="-3">16673000</us-gaap:AccountsPayableCurrent>
  <!--Accounts Payable and Accrued Liabilities Disclosure [Text Block]-->
  <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock id="Fact_8da9c3973b6e4d89b560526342a0654e" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 7 &amp;#8211; OTHER PAYABLE AND ACCRUED EXPENSES&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, other payable and accrued expenses consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Lease&amp;#160;expenses&amp;#160;and&amp;#160;payable&amp;#160;for&amp;#160;leasehold&amp;#160;improvement&amp;#160;due&amp;#160;to&amp;#160;a&amp;#160;related&amp;#160;party&amp;#160;(note&amp;#160;11)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued commissions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,235&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,931&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;warranty&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,633&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,710&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;payroll&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,743&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;626&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;professional&amp;#160;fees&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;176&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;64&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;machine&amp;#160;testing&amp;#160;fees&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,333&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,076&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued due to a related party (note 11)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,990&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Others&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,860&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,950&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;13,970&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;10,410&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
  <!--Accounts receivable, less allowance for doubtful accounts of $0 as of September 30, 2019 and $0 as of December 31, 2018 (note 3)-->
  <us-gaap:AccountsReceivableNetCurrent id="Fact_56c55f65b9004cb984227eff48b63acb" contextRef="c20181231" unitRef="U002" decimals="-3">24608000</us-gaap:AccountsReceivableNetCurrent>
  <!--Accounts receivable, less allowance for doubtful accounts of $0 as of September 30, 2019 and $0 as of December 31, 2018 (note 3)-->
  <us-gaap:AccountsReceivableNetCurrent id="Fact_ee99cfef06ec462098bedf55d1355959" contextRef="c20190930" unitRef="U002" decimals="-3">43144000</us-gaap:AccountsReceivableNetCurrent>
  <!--Accounts Receivable, before Allowance for Credit Loss, Current-->
  <us-gaap:AccountsReceivableGrossCurrent id="Fact_a2c45247ee094af48d685d359c109fc9" contextRef="c20190930" unitRef="U002" decimals="-3">43144000</us-gaap:AccountsReceivableGrossCurrent>
  <!--Accounts Receivable, before Allowance for Credit Loss, Current-->
  <us-gaap:AccountsReceivableGrossCurrent id="Fact_a6bbac331f6442cdbb2293580ed5cdb3" contextRef="c20181231" unitRef="U002" decimals="-3">24608000</us-gaap:AccountsReceivableGrossCurrent>
  <!--Accrued commissions-->
  <us-gaap:AccruedSalesCommissionCurrent id="Fact_21ca1cae915144978131772d8672aeaf" contextRef="c20190930" unitRef="U002" decimals="-3">3235000</us-gaap:AccruedSalesCommissionCurrent>
  <!--Accrued commissions-->
  <us-gaap:AccruedSalesCommissionCurrent id="Fact_710fd565233d4513856903b5bf823715" contextRef="c20181231" unitRef="U002" decimals="-3">2931000</us-gaap:AccruedSalesCommissionCurrent>
  <!--Accrued professional fees-->
  <us-gaap:AccruedProfessionalFeesCurrent id="Fact_40a59623f72a481da1aa800ea7a0bed1" contextRef="c20190930" unitRef="U002" decimals="-3">176000</us-gaap:AccruedProfessionalFeesCurrent>
  <!--Accrued professional fees-->
  <us-gaap:AccruedProfessionalFeesCurrent id="Fact_ecbbdc66eb8042bbbbcc06729bbc4bdb" contextRef="c20181231" unitRef="U002" decimals="-3">64000</us-gaap:AccruedProfessionalFeesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent id="Fact_4b0b8b230c334e74baa8dc119ae57708" contextRef="c20181231" unitRef="U002" decimals="-3">1193000</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent id="Fact_e1361f9210854616ad17ae898d6a2084" contextRef="c20190930" unitRef="U002" decimals="-3">1326000</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_79448486c7c147e2b5f6a23099c47404" contextRef="c20190930" unitRef="U002" decimals="-3">2920000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_bec38db9f9974220b7a34d9ef0de8add" contextRef="c20181231" unitRef="U002" decimals="-3">8102000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated other comprehensive loss-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_62d5b9ae7e364fe3a82505427feda230" contextRef="c20190930" unitRef="U002" decimals="-3">-3077000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Accumulated other comprehensive loss-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_6b5c04f9b0934640a071714cec05302e" contextRef="c20181231" unitRef="U002" decimals="-3">-857000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Additional Paid in Capital-->
  <us-gaap:AdditionalPaidInCapital id="Fact_4ed63a1100e442eda992ac243ac01489" contextRef="c20181231" unitRef="U002" decimals="-3">56567000</us-gaap:AdditionalPaidInCapital>
  <!--Additional Paid in Capital-->
  <us-gaap:AdditionalPaidInCapital id="Fact_622c0f4ae43641bda69b2cefdca4789f" contextRef="c20190930" unitRef="U002" decimals="-3">82857000</us-gaap:AdditionalPaidInCapital>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_04796abb19ce4066b414c781f5811980" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_0516bc9fc12b40ea8383b1a13215e8bd" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_1836de4c8772485c860b161c20c40df9" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">2771000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_27f2dafdf75d4af5a31ab7c25ad42115" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_35dbecab238a48f6a83e572e270fc183" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">411000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_3ca9b73526d944cd9716323be6e4e960" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">1557000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_4ba19591eaca4e849f2d46d707f046fc" contextRef="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_53aacf206d6647a99e5d6a15bf631864" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_5a5e45ad66a44a7b872255098a420b0a" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_6c68cdbcf2e04d119d41c67dfdae7320" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_783ec83122464c01838f8d4044f9e6e2" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">2919000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_7efb00ee3a394d79b61ca1519701afa2" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2919000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_98bd80ebbd87410c97023db3019d1170" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">411000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_9a87510b2f884961899b71c86647ac2b" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-AOCI Attributable to Parent [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_a59e59c7f0bd4106957a2142997bbd28" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-AOCI Attributable to Parent [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_b28c780041194326961ebf30bd9e50d1" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_ba31c234c45d463bb53dcd8281e90f6b" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">2771000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_be0cfc6253d044398f5d50be6998aa56" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_ca3d4660f343466b8cb18bfe2ceac3eb" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">1557000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-AOCI Attributable to Parent [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_d2e5e4bd8fa84e5f85c18a9bb1fba304" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_db749040c9404a76a27bffd255ab927c" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_e34149a93b5e485582cf4ec968ea4383" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_eed32311dc674c9cad30dcabe95f831a" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-AOCI Attributable to Parent [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_f843df20845f44ae8cbfc001fd7c5706" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_200006f5ac224dedbe2367f062e43f55" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">1078000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_30d63b01f3744a2089b5d433597e1935" contextRef="c20190701to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">1329000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_63259eb3ddad42a397849d39c1ba1a50" contextRef="c20180701to20180930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">195000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_6799fbb0c58c4170a3cb46864bcb2060" contextRef="c20180101to20180930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">458000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_8ea8f921c7214ef686ab63689f15971d" contextRef="c20180701to20180930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">216000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_a8acd24d8dd14cb0bac1cafd8ae5290c" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">1841000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_c5156fc4663f4bc0bcb3ccfd9039cd90" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">949000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_caf0e083c5174f958fdf6360b1d15bd2" contextRef="c20190701to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">228000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_f9f26f453f8a46ed8eb77d17b2925789" contextRef="c20180101to20180930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">2313000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Accounts receivable, allowance for doubtful accounts-->
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent id="Fact_1baf1dd0633d4dab82b0f40641d60b43" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <!--Accounts receivable, allowance for doubtful accounts-->
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent id="Fact_268f73e2103748da9c217a59bbe69cab" contextRef="c20190930" unitRef="U002" decimals="-3">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <!--Assets-->
  <us-gaap:Assets id="Fact_a37af033799346ddb3a0f86ac674afa2" contextRef="c20190930" unitRef="U002" decimals="-3">180216000</us-gaap:Assets>
  <!--Assets-->
  <us-gaap:Assets id="Fact_a61e085b93e5488598a2ea6983e92dc5" contextRef="c20181231" unitRef="U002" decimals="-3">103047000</us-gaap:Assets>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_04f0c762021c48f6be800f190d7cdff1" contextRef="c20190930" unitRef="U002" decimals="-3">163654000</us-gaap:AssetsCurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_0cd2a09d8c274c2a85e8a8b9d6d87fd2" contextRef="c20181231" unitRef="U002" decimals="-3">96028000</us-gaap:AssetsCurrent>
  <!--Business Description and Basis of Presentation [Text Block]-->
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock id="Fact_388bf7eeb2fa4f67bdeabd731b8d9b31" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt; font-weight: bold;"&gt;NOTE 1 &amp;#8211; DESCRIPTION OF BUSINESS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM Research, Inc. (&amp;#8220;ACM&amp;#8221;) and its subsidiaries (collectively with ACM, the &amp;#8220;Company&amp;#8221;) develop, manufacture and sell single-wafer wet cleaning equipment used to improve the manufacturing process and yield for advanced integrated chips. The Company markets and sells its single-wafer wet-cleaning equipment, under the brand name &amp;#8220;Ultra C,&amp;#8221; based on the Company&amp;#8217;s proprietary Space Alternated Phase Shift (&amp;#8220;SAPS&amp;#8221;) and Timely Energized Bubble Oscillation (&amp;#8220;TEBO&amp;#8221;) technologies. These tools are designed to remove random defects from a wafer surface efficiently, without damaging the wafer or its features, even at increasingly advanced process nodes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM was incorporated in California in 1998, and it initially focused on developing tools for manufacturing process steps involving the integration of ultra low-K materials and copper. The Company&amp;#8217;s early efforts focused on stress-free copper-polishing technology, and it sold tools based on that technology in the early 2000s.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In 2006 the Company established its operational center in Shanghai in the People&amp;#8217;s Republic of China (the &amp;#8220;PRC&amp;#8221;), where it operates through ACM&amp;#8217;s subsidiary ACM Research (Shanghai), Inc. (&amp;#8220;ACM Shanghai&amp;#8221;). ACM Shanghai was formed to help establish and build relationships with integrated circuit manufacturers in the PRC, and the Company initially financed its Shanghai operations in part through sales of non-controlling equity interests in ACM Shanghai.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In 2007 the Company began to focus its development efforts on single-wafer wet-cleaning solutions for the front-end chip fabrication process. The Company introduced its SAPS megasonic technology, which can be applied in wet wafer cleaning at numerous steps during the chip fabrication process, in 2009. It introduced its TEBO technology, which can be applied at numerous steps during the fabrication of small node two-dimensional conventional and three-dimensional patterned wafers, in March 2016. The Company has designed its equipment models for SAPS and TEBO solutions using a modular configuration that enables it to create a wet-cleaning tool meeting the specific requirements of a customer, while using pre-existing designs for chamber, electrical, chemical delivery and other modules. In August 2018, the Company introduced its Ultra-C Tahoe wafer cleaning tool, which can deliver high cleaning performance with significantly less sulfuric acid than typically consumed by conventional high-temperature single-wafer cleaning tools. The Company also offers a range of custom-made equipment, including cleaners, coaters and developers, to back-end wafer assembly and packaging factories, principally in the PRC.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In 2011 ACM Shanghai formed a wholly owned subsidiary in the PRC, ACM Research (Wuxi), Inc. (&amp;#8220;ACM Wuxi&amp;#8221;), to manage sales and service operations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In November 2016 ACM redomesticated from California to Delaware pursuant to a merger in which ACM Research, Inc., a California corporation, was merged into a newly formed, wholly owned Delaware subsidiary, also named ACM Research, Inc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2017 ACM formed a wholly owned subsidiary in Hong Kong, CleanChip Technologies Limited (&amp;#8220;CleanChip&amp;#8221;), to act on the Company&amp;#8217;s behalf in Asian markets outside the PRC by, for example, serving as a trading partner between ACM Shanghai and its customers, procuring raw materials and components, performing sales and marketing activities, and making strategic investments.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In August 2017 ACM purchased 18.77% of ACM Shanghai&amp;#8217;s equity interests held by Shanghai Science and Technology Venture Capital Co., Ltd. On November 8, 2017, ACM purchased the remaining 18.36% of ACM Shanghai&amp;#8217;s equity interest held by third parties, Shanghai Pudong High-Tech Investment Co., Ltd. (&amp;#8220;PDHTI&amp;#8221;) and Shanghai Zhangjiang Science &amp;amp; Technology Venture Capital Co., Ltd. (&amp;#8220;ZSTVC&amp;#8221;). At December 31, 2017, ACM owned all of the outstanding equity interests of ACM Shanghai, and indirectly through ACM Shanghai, owned all of the outstanding equity interests of ACM Wuxi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On September 13, 2017, ACM effectuated a 1-for-3 reverse stock split of Class A and Class B common stock. Unless otherwise indicated, all share numbers, per share amount, share prices, exercise prices and conversion rates set forth in these notes and the accompanying condensed consolidated financial statements have been adjusted retrospectively to reflect the reverse stock split.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In December 2017 ACM formed a wholly owned subsidiary in the Republic of Korea, ACM Research Korea CO., LTD. (&amp;#8220;ACM Korea&amp;#8221;), to serve customers based in Republic of Korea and perform sales, marketing, research and development activities for new products and solutions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In March 2019 ACM Shanghai formed a wholly owned subsidiary in the PRC, Shengwei Research (Shanghai), Inc., to manage activities related to addition of future long-term production capacity.&amp;#160; The subsidiary was formed with registered capital of RMB 5,000 ($727).&amp;#160; As of September 30, 2019, no capital had been injected into this subsidiary.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2019 Cleanchip formed a wholly owned subsidiary in California, ACM Research (CA), Inc., to provide procurement services on behalf of ACM Shanghai.&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On June 17, 2019 ACM announced plans to complete over the next three years a listing (the &amp;#8220;Listing&amp;#8221;) of shares of ACM Shanghai on the Shanghai Stock Exchange&amp;#8217;s new Sci-Tech innovAtion boaRd, known as the STAR Market, and a concurrent initial public offering (the &amp;#8220;STAR IPO&amp;#8221;) of ACM Shanghai shares in the PRC. ACM Shanghai is currently ACM&amp;#8217;s primary operating subsidiary, and&amp;#160; at the time of announcement, was wholly owned by ACM.&amp;#160; As an initial step in qualifying for the Listing and STAR IPO, on June 12, 2019 ACM Shanghai entered into agreements with seven investors (the &amp;#8220;Investors&amp;#8221;), pursuant to which the Investors agreed to pay a purchase price totaling RMB 187,900 (equivalent to $27,300) to ACM Shanghai for shares representing 4.2% of the then-outstanding ACM Shanghai shares (see note 14).&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_27b69542863e47bab048e61c167578e2" contextRef="c20171231" unitRef="U002" decimals="-3">17681000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_bc52693a5bd14fc08964f589d3cc93fb" contextRef="c20181231" unitRef="U002" decimals="-3">27124000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_3fc6f3b36aef417ba044b5688b7db94b" contextRef="c20180930" unitRef="U002" decimals="-3">18238000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_cb16de2fe0ad45089b6f633a9db00ab3" contextRef="c20190930" unitRef="U002" decimals="-3">73846000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_7e1f3ef5dcf9471486aa7282e8e1e307" contextRef="c20181231" unitRef="U002" decimals="-3">27124000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_cfbe5c37bc684079abd3cd4132a7e986" contextRef="c20190930" unitRef="U002" decimals="-3">47264000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_e181a71e3e834bcdaefa8bd6af9c01ad" contextRef="c20180930" unitRef="U002" decimals="-3">18238000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_71f182cbffa8407aa2319a75acd8e815" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">46722000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_7c2cc49d2303417fb081a7ba78b06598" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">557000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Commitments and contingencies (note 17)-->
  <us-gaap:CommitmentsAndContingencies id="Fact_2dd37811f3da41db82fcbcd53f469b96" contextRef="c20181231" unitRef="U002" xsi:nil="true" />
  <!--Commitments and contingencies (note 17)-->
  <us-gaap:CommitmentsAndContingencies id="Fact_b2fc4f82a6be4fe6b25bbd7a85068b05" contextRef="c20190930" unitRef="U002" xsi:nil="true" />
  <!--Commitments and Contingencies Disclosure [Text Block]-->
  <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock id="Fact_acd6ef7d35dd48da8a19f16cb9824bdc" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-weight: bold; font-size: 10pt;"&gt;NOTE 17 &amp;#8211; COMMITMENTS AND CONTINGENCIES&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The Company leases offices under non-cancelable operating lease agreements. See note 8 for future minimum lease payments under non-cancelable operating lease agreements with initial terms of one year or more.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;As of September 30, 2019, the Company had $303 of open capital commitments.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;From time to time the Company is subject to legal proceedings, including claims in the ordinary course of business and claims with respect to patent infringements. As of September 30, 2019, the Company did not have any legal proceedings.&lt;/div&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
  <!--Common Stock, Par or Stated Value Per Share-Common Class A [Member]-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_36470ef68cf04e8c83761311ffa2e5fd" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="INF">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common Stock, Par or Stated Value Per Share-Common Class B [Member]-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_3f3c8e1dcc584871a8a9b90d64b29084" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U003" decimals="INF">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common Stock, Par or Stated Value Per Share-Common Class A [Member]-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_474924a4616a4a46b5a31154186e83d1" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="INF">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common Stock, Par or Stated Value Per Share-Common Class B [Member]-->
  <us-gaap:CommonStockParOrStatedValuePerShare id="Fact_b07bb0edc9bd418ab0597d67bb5d0249" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U003" decimals="INF">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common Stock, Shares, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_08fb33c8db2243edb73c467de7997125" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1898423</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_a6c5bc7163b54a8e9b82df42bec5d82c" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_afd8c423197f48c6ab854852904eb4e5" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">14110315</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_e66930b222494d44a6d8440ee82bd25d" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16179058</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares Authorized-Common Class B [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_ca59fe856fcd46349bd568c154562c8b" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">2409738</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class A [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_d07111b2f12e4607a03e3688b4d87350" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">50000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class B [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_d5c2a0625885458fa4cc0e9736c291db" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">2409738</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class A [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_fd44ed56b95641de8b035f476b99f9b6" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">50000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, shares outstanding (in shares)-Common Class B [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_1821d8adfb00486a8cdcb0018d462a7c" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1898423</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class A [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_9e7be463c3fc4220935135af54e485f6" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16179058</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class B [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_b68c9df7aadc4000b1e72ffc9e51fbb0" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class A [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_f60c15d949974d66a83cbe704cb39b9d" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">14110315</us-gaap:CommonStockSharesOutstanding>
  <!--Common Stock, Value, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockValue id="Fact_18aa55e06190419a8fbc03416a920881" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">1000</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockValue id="Fact_58bf250f6ee9470995e525c24b776414" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2000</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockValue id="Fact_a34d314bbb3541a7b07c4aeea93f78d0" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U002" decimals="-3">0</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockValue id="Fact_dd9dbbedbff74c9d85e93af40ff00fdf" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U002" decimals="-3">0</us-gaap:CommonStockValue>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_294190081cef485b92950c48955c989d" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">6191000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_4c0df02f6aec45f5b616b600f394848d" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">3211000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_d646d8d5b1974929b2538bd156e8d32a" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">12048000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_df6ed471787046c0bbb516b03b56b97f" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3107000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_075d857e795e413f89840f5d8a7afd2c" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">3211000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_5acc171724324c209463ad95ba36384c" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3107000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_9f0b734d86524490ad7838bb1ecdfdcc" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">12355000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_b8048e37d056467e8744140a9a37ce04" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">6498000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Construction in progress-->
  <us-gaap:ConstructionInProgressGross id="Fact_470b7a8b3b1a4e3e83557fe5587e4e15" contextRef="c20181231" unitRef="U002" decimals="-3">32000</us-gaap:ConstructionInProgressGross>
  <!--Construction in progress-->
  <us-gaap:ConstructionInProgressGross id="Fact_9cd7effa399141b58e832196fdcbda09" contextRef="c20190930" unitRef="U002" decimals="-3">494000</us-gaap:ConstructionInProgressGross>
  <!--Contract with Customer, Liability, Current-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_13a632f2b7d344a1a27af39d135d448f" contextRef="c20181231" unitRef="U002" decimals="-3">8417000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Contract with Customer, Liability, Current-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_401f121b3bbc4ca6870ae88fd54ffa1d" contextRef="c20190930" unitRef="U002" decimals="-3">8397000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Commitments-->
  <us-gaap:ContractualObligation id="Fact_b03a1650f2264e93bef57f1683467571" contextRef="c20190930" unitRef="U002" decimals="-3">303000</us-gaap:ContractualObligation>
  <!--Cost Method Investments-->
  <us-gaap:CostMethodInvestments id="Fact_04fd612a650d442492272be0a66d0070" contextRef="c20190930" unitRef="U002" decimals="-3">4348000</us-gaap:CostMethodInvestments>
  <!--Cost Method Investments-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:CostMethodInvestments id="Fact_093879f14c1a4002b0dbade35a9c8c0d" contextRef="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U002" decimals="-3">109000</us-gaap:CostMethodInvestments>
  <!--Cost Method Investments-->
  <us-gaap:CostMethodInvestments id="Fact_b7d3770e4c1c46d19b40afa16f0461a5" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:CostMethodInvestments>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_2a8f73aacdbc40a69a804af43181357e" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">12892000</us-gaap:CostOfRevenue>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_5f9fb54ea3674bb8b9c607b99db9440e" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">17173000</us-gaap:CostOfRevenue>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_8fd21e899bf9436f959d323f70fd93c9" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">29662000</us-gaap:CostOfRevenue>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_f9573548408048f8b8f8f1863d99a45c" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">44705000</us-gaap:CostOfRevenue>
  <!--Loans payable period-Ninebell Co., Ltd [Member]-->
  <us-gaap:DebtInstrumentTerm id="Fact_c7ddc9ce809e4efa9e54131eef1204f5" contextRef="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">P180D</us-gaap:DebtInstrumentTerm>
  <!--Debt Instrument, Face Amount-Senior Notes [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:DebtInstrumentFaceAmount id="Fact_3d9176fc906643bba79a62031c614e55" contextRef="c20180330_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember" unitRef="U002" decimals="-3">3000000</us-gaap:DebtInstrumentFaceAmount>
  <!--Debt Instrument, Face Amount-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentFaceAmount id="Fact_c18af492c88445a3bb42f84c825bdd9a" contextRef="c20180330_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">3000000</us-gaap:DebtInstrumentFaceAmount>
  <!--Debt Instrument, Interest Rate, Stated Percentage-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentInterestRateStatedPercentage id="Fact_9a08904053c5451a86cf48beb4e82e00" contextRef="c20180330_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U004" decimals="INF">0.0301</us-gaap:DebtInstrumentInterestRateStatedPercentage>
  <!--Debt Instrument, Interest Rate, Stated Percentage-Senior Notes [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:DebtInstrumentInterestRateStatedPercentage id="Fact_f274edd5020342d9bf60a7b1e99510d3" contextRef="c20180330_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember" unitRef="U004" decimals="INF">0.0301</us-gaap:DebtInstrumentInterestRateStatedPercentage>
  <!--Debt Instrument, Maturity Date-Line of Credit 6 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_004a46b6fe99411296dbe06847b9039b" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit6Member">2019-01-23</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 5 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_03827dcf91a848b5a2c30f0719035190" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit5Member">2019-06-13</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 2 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_17a77981c90b434197693cf11523a491" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit2Member">2019-02-14</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 8 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_22ee9a704b62481596eda53773d79d77" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit8Member">2020-01-18</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 9 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_36d6aefa811144dcbe887c627ed66e89" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit9Member">2020-01-22</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 12 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_556658758a4e4e0f8d6fd5faef35956a" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit12Member">2020-04-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 7 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_60e0d1015e0d418d9c9c1e6d85ac6f9c" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit7Member">2020-02-21</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 1 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_6c969b4bab1040fca0cf62e7cf5b710f" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit1Member">2019-04-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 10 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_9a2e91dc1431452c9e04412669ace6dd" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit10Member">2020-02-14</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 11 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_cf096bebc9d4452785ff5f04d910cc32" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit11Member">2020-03-25</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 4 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_dfd55e24d8d74c2fb262818d41b3ccdc" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit4Member">2019-06-06</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 3 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_f33f8db454e04540a9c2e0846fe0d6a9" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit3Member">2020-01-23</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_510f433757624f2b8afddc593f34c842" contextRef="c20190101to20190930_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">2023-08-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-ACM Research (Shanghai), Inc. [Member]-Senior Notes [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_80ccfb9111b341cda7e5934fcf2369bb" contextRef="c20190101to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_LongtermDebtTypeAxis_SeniorNotesMember">2023-08-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_0d0c0ec40a6d43a9b6462f8d37eb0395" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-757000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_549c258d74c2413397ce448d79f828c0" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_05575fc0e4fc46b5914ea7bbd985cb5d" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">-1440000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred tax assets (note 16)-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent id="Fact_89a8657d61fc46d29eeff04b1ffc1f30" contextRef="c20190930" unitRef="U002" decimals="-3">2309000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Deferred tax assets (note 16)-->
  <us-gaap:DeferredTaxAssetsNetNoncurrent id="Fact_98e347669e954256b207fe42311e2e36" contextRef="c20181231" unitRef="U002" decimals="-3">1637000</us-gaap:DeferredTaxAssetsNetNoncurrent>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_602caec8057041ffbd72824cbd34bba3" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">586000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_991cb0c653e147b6aab9a993cbfad2a8" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">380000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_1ae9f6df302d47f78ed2a95483a8ffe7" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">528000</us-gaap:Depreciation>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_94190171de5e496c8a3f01e3e47bc6f8" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">176000</us-gaap:Depreciation>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_af22ec05d46442fca882419a928d7757" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">84000</us-gaap:Depreciation>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_ca125d98212f48698ac779ccfe4a7371" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">257000</us-gaap:Depreciation>
  <!--Share-based Payment Arrangement [Text Block]-->
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock id="Fact_273cf27f19a44bcca6eed592d49eee4f" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-weight: bold; font-size: 10pt;"&gt;NOTE 15&amp;#8211; STOCK-BASED COMPENSATION&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM&amp;#8217;s stock-based compensation awards consisting of employee and non-employee awards were issued under the 1998 Stock Option Plan and 2016 Omnibus Incentive Plan and as standalone options.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 10pt;"&gt;Employee Awards&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The following table summarizes the Company&amp;#8217;s employee share option activities during the nine months ended September 30, 2019:&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; padding-bottom: 2px; vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Number of&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Option Share&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Average Grant&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Exercise&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Price&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Remaining&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding at December 31, 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,503,405&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.91&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4.09&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0); text-indent: 10pt;"&gt;7.30 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;614,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;6.30&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;16.39&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(105,113&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.60&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.08&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(628&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.00&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(41,203&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1.35&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.82&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,970,461&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;6.71&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;7.28 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Vested and exercisable at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,673,780&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;In addition to the above share option activities, as mentioned in note 14, purchase price paid by the Employee Entities was at a discount of 20% from the purchase price paid by the other investors, and there was no vesting condition attached to the subscription. Accordingly, the Company determined the discount as stock based compensation expenses, which amounted to $949.&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;During the three months ended September 30, 2019 and 2018, the Company recognized employee stock-based compensation expense of $1,329 and $195, respectively. During the nine months ended September 30, 2019 and 2018, the Company recognized employee stock-based compensation expense of $1,841 and $458, respectively.&amp;#160; As of September 30, 2019 and December 31, 2018, $5,009 and $2,424, respectively, of total unrecognized employee stock-based compensation expense, net of estimated forfeitures, related to stock-based awards were expected to be recognized over a weighted-average period of 1.63 years and 1.62 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;The change in recognized and unrecognized employee stock-based compensation expense during the three and nine months ended September 30, 2019 included the effect of the employee share option activities in the table above, together with an incremental $949 due to the discounted purchase price paid by the Employee Entities for their investments in ACM Shanghai (note 14).&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;Stock options to acquire 319,000 and 614,000 shares, respectively, of Class A common stock were granted to employees during the three and nine months ended September 30, 2019. Stock options to acquire 31,339 shares of Class A common stock held by employees were canceled pursuant to the Equity Purchase Agreement (note 11) during the three and nine months ended September 30, 2019.&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 10pt;"&gt;Non-employee Awards&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The following table summarizes the Company&amp;#8217;s non-employee share option activities during the nine months ended September 30, 2019:&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Number of&lt;br /&gt; Option Shares&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;br /&gt; Average Grant&lt;br /&gt; Date Fair Value&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;br /&gt; Average Exercise&lt;br /&gt; Price&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Remaining&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding&amp;#160;at&amp;#160;December&amp;#160;31,&amp;#160;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,212,374&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.78&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.57&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;6.66 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(88,529&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1.06&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(22,232&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.00&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding&amp;#160;at&amp;#160;September 30,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,101,613&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.82&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.69&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;6.10 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;September 30,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;959,845&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The Company adopted ASU 2018-07 on January 1, 2019, and the stock-based compensation expense for grants before the adoption of ASU 2018-07 is based on the grant date fair value as of December 31, 2018, which was the last business day before the Company adopted ASU 2018-07, for all nonemployee awards that have not vested as of December 31, 2018. The cumulative-effect adjustment to retained earnings as of January 1, 2019 was immaterial to the financial statements as a whole. Accordingly, the Company did not record this adjustment as of January 1, 2019. Furthermore, for future awards, compensation expense is based on the fair&amp;#160; value of the shares at the grant date.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt;"&gt;&lt;font style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 10pt;"&gt;During the three months ended September 30, 2019 and 2018,&lt;/font&gt;&lt;font style="font-size: 10pt;"&gt; the Company recognized stock-based compensation expense of $228 and $&lt;font style="background-color: rgb(255, 255, 255);"&gt;216&lt;/font&gt;, respectively, related to share option vesting. &lt;font style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;During the nine months ended September 30, 2019 and 2018,&lt;/font&gt; the Company recognized stock-based compensation expense of $1,078 and $&lt;font style="background-color: rgb(255, 255, 255);"&gt;2,313&lt;/font&gt;, respectively, related to share option vesting. &lt;font style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;As of September 30, 2019 and December 31, 2018, $634 and $1,713, respectively, of total unrecognized non-employee stock-based compensation expense, net of estimated forfeitures, related to stock-based awards were expected to be recognized over a weighted-average period of 0.33 years and 1.31 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;Stock options to acquire 22,232 shares of Class A common stock held by a director were canceled pursuant to the Equity Purchase Agreement (note 11) during the three and nine months ended September 30, 2019.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <!--Lease expenses and payable for leasehold improvement due to a related party (note 11)-->
  <us-gaap:DueToOtherRelatedPartiesClassifiedCurrent id="Fact_1af6c21a45b44abea33e11b33db8de39" contextRef="c20190930" unitRef="U002" decimals="-3">0</us-gaap:DueToOtherRelatedPartiesClassifiedCurrent>
  <!--Lease expenses and payable for leasehold improvement due to a related party (note 11)-->
  <us-gaap:DueToOtherRelatedPartiesClassifiedCurrent id="Fact_898fe69b692f430283345fbc014d978e" contextRef="c20181231" unitRef="U002" decimals="-3">53000</us-gaap:DueToOtherRelatedPartiesClassifiedCurrent>
  <!--Due to Related Parties-->
  <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent id="Fact_1e8e495f80894421bb8e0689f3606289" contextRef="c20190930" unitRef="U002" decimals="-3">1990000</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
  <!--Due to Related Parties-->
  <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent id="Fact_333f710658d1466380044ca364739521" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
  <!--Due to Related Parties-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent id="Fact_6d351554323345dbaf1c26fa8c3b0142" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">1990000</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_222fb8a31780482a881e0c8dec191f6c" contextRef="c20180101to20180930" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_3679581455794f3b96bb2a773a3e0cd2" contextRef="c20190701to20190930" unitRef="U003" decimals="2">0.45</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_64d3776931dd45eea1c0670fda658286" contextRef="c20180701to20180930" unitRef="U003" decimals="2">0.21</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_9109ff1fb8f2446e941073dce7dcbb09" contextRef="c20190101to20190930" unitRef="U003" decimals="2">0.80</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_31de4fd47e274ab0acf12a3793718f0c" contextRef="c20190101to20190930" unitRef="U003" decimals="2">0.91</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_ad9e0489314f43d6b62398ed3d3ca99a" contextRef="c20180701to20180930" unitRef="U003" decimals="2">0.24</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_d842b156affc42c695b4d804286f4ac1" contextRef="c20180101to20180930" unitRef="U003" decimals="2">0.27</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_f5457c316b5547ce986321540055c0bb" contextRef="c20190701to20190930" unitRef="U003" decimals="2">0.52</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Policy [Policy Text Block]-->
  <us-gaap:EarningsPerSharePolicyTextBlock id="Fact_027b339586c440aabfb89faf631a5829" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Basic and Diluted Net Income per Common Share&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Three Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Nine Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Numerator:&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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net&amp;#160;income&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;9,089&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;15,257&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income available to common stockholders, basic and diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;8,782&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;14,950&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,999,746&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,915,864&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,381,944&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,714,310&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Effect&amp;#160;of&amp;#160;dilutive&amp;#160;securities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,354,468&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,253,943&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,317,066&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,101,791&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;19,354,214&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;18,169,807&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;18,699,010&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;17,816,101&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income per common share:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.52&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.91&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.27&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.21&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.80&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM has been authorized to issue Class A and Class B common stock since redomesticating in Delaware in November 2016. The two classes of common stock are substantially identical in all material respects, except for voting rights. Since ACM did not declare any dividends during the three and nine months ended September 30, 2019 and 2018, the net income per common share attributable to each class is the same under the &amp;#8220;two-class&amp;#8221; method. As such, the two classes of common stock have been presented on a combined basis in the condensed consolidated statements of operations and comprehensive income and in the above computation of net income per common share.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Diluted net income per common share reflects the potential dilution from securities that could share in ACM&amp;#8217;s earnings. ACM&amp;#8217;s potential dilutive securities consist warrants and stock options for the three and nine months ended September 30, 2019 and 2018. &lt;font style="color: rgb(0, 0, 0);"&gt;Certain potential dilutive securities were excluded from the net income per share calculation because the impact would be anti-dilutive.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
  <!--Effect of exchange rate changes on cash, cash equivalents and restricted cash-->
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_6a29512545bd4319b2ba364f09510b8c" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-376000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Effect of exchange rate changes on cash, cash equivalents and restricted cash-->
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_b957214924fe43f6948710c6e449900a" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-2407000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Statutory Chinese income tax rate-Minimum [Member]-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential id="Fact_6ed4a61ab68b48e9bfc42058e8648aab" contextRef="c20190101to20190930_RangeAxis_MinimumMember" unitRef="U004" decimals="INF">0.15</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
  <!--Statutory Chinese income tax rate-Maximum [Member]-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential id="Fact_883854012bf14e2e8dc6a6262a583ae5" contextRef="c20190101to20190930_RangeAxis_MaximumMember" unitRef="U004" decimals="INF">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
  <!--Statutory U.S federal income tax rate-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate id="Fact_a3d7f14273284f90a92444a352964948" contextRef="c20170101to20171231" unitRef="U004" decimals="INF">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <!--Statutory U.S federal income tax rate-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate id="Fact_a621f48b1c0946b39ea51d2400832154" contextRef="c20190101to20190930" unitRef="U004" decimals="INF">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <!--Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized id="Fact_1691252bccee49a3bef2ae549d93dc36" contextRef="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">634000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <!--Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized id="Fact_346e7b6963a248a5a6ca672e3d861c16" contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">2424000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <!--Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized id="Fact_5555c081a9fa4bffb2c5ec5be8d27029" contextRef="c20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">5009000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <!--Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized id="Fact_acc7edfb89734f16b76f9f3a1bf00963" contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">1713000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <!--Weighted-average period over which unrecognized compensation is expected to be recognized-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 id="Fact_4d0357842f994f6795504f24353584f6" contextRef="c20180101to20181231_AwardTypeAxis_EmployeeStockOptionMember">P1Y7M13D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Weighted-average period over which unrecognized compensation is expected to be recognized-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 id="Fact_85836ac218dd42a0a7f7db3e19f622c3" contextRef="c20180101to20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P1Y3M22D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Weighted-average period over which unrecognized compensation is expected to be recognized-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 id="Fact_b176238fe55a425ea746d368767cd3fd" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember">P1Y7M17D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Weighted-average period over which unrecognized compensation is expected to be recognized-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 id="Fact_cd2a4ccdb23442f7b1d88c941ad23c6f" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P0Y3M29D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Accrued payroll-->
  <us-gaap:EmployeeRelatedLiabilitiesCurrent id="Fact_b17617e11c2642668bb75196746ce823" contextRef="c20181231" unitRef="U002" decimals="-3">626000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <!--Accrued payroll-->
  <us-gaap:EmployeeRelatedLiabilitiesCurrent id="Fact_c77cc804ad0c4251a485701df53e7dbd" contextRef="c20190930" unitRef="U002" decimals="-3">1743000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <!--Purchase price-Ninebell Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentAggregateCost id="Fact_4f7da93dc9f34e699e897c55121a86a0" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U002" decimals="-3">1200000</us-gaap:EquityMethodInvestmentAggregateCost>
  <!--Purchase price-Common Class A [Member]-Ninebell Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentAggregateCost id="Fact_eb6c676e555f466dae4aba4f316beadc" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">1000000</us-gaap:EquityMethodInvestmentAggregateCost>
  <!--Percentage of ordinary shares issued-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentOwnershipPercentage id="Fact_5e1fddea820a4092af51ae2b0b216da0" contextRef="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U004" decimals="2">0.15</us-gaap:EquityMethodInvestmentOwnershipPercentage>
  <!--Percentage of ordinary shares issued-Ninebell Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentOwnershipPercentage id="Fact_ec0b936e1e5546abb22cbd271ae4cfc8" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U004" decimals="1">0.2</us-gaap:EquityMethodInvestmentOwnershipPercentage>
  <!--Equity Method Investments-->
  <us-gaap:EquityMethodInvestments id="Fact_600e633f82b24ed9885806f9283accf2" contextRef="c20190930" unitRef="U002" decimals="-3">1620000</us-gaap:EquityMethodInvestments>
  <!--Equity Method Investments-->
  <us-gaap:EquityMethodInvestments id="Fact_e135d03ed3684010a7aba97100fe8e3d" contextRef="c20181231" unitRef="U002" decimals="-3">1360000</us-gaap:EquityMethodInvestments>
  <!--Finite-Lived Intangible Assets, Net-->
  <us-gaap:FiniteLivedIntangibleAssetsNet id="Fact_ac5778c0074a49e1890c48e7879cd378" contextRef="c20190930" unitRef="U002" decimals="-3">285000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <!--Finite-Lived Intangible Assets, Net-->
  <us-gaap:FiniteLivedIntangibleAssetsNet id="Fact_cd87ddc0a6df4c7da0c9ebd0556f51de" contextRef="c20181231" unitRef="U002" decimals="-3">274000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <!--Gain (Loss) on Disposition of Property Plant Equipment-->
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment id="Fact_d1da8882e5244042a9b7fdd529c5827f" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <!--Gain (Loss) on Disposition of Property Plant Equipment-->
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment id="Fact_ebdb4f407d1241e6b2425ad699c1bb8d" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-296000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_340cc8b41a184b42bf80badd31cbd936" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">6312000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_3c4a0668f4544cdb83cc92050fa1641d" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">1846000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_8173a9707ed94d1c868efc39d8d9faf5" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">5992000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_891dc229412d4fcaaedb38d369f489c2" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">1390000</us-gaap:GeneralAndAdministrativeExpense>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_2b8c20ba200d4c18b938e94358409f69" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">10287000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_41eab6cc519848998f5e6cf758932475" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">16254000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_47735b282f014656ba4311551fb31f09" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">38211000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_4df351af2fbb426ebc2155124362f25b" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">24133000</us-gaap:GrossProfit>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_506b9fcd16c8483d8711eb5a7277c0a4" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">4935000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_5692d83a0ab142caa655fa8c344b49d3" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">4314000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_b5875a537bb14945bee3218cbd012a4c" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">15924000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_ccc2792ec851403e8f4c909717781e43" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">8761000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_20bffbff3298431f8b501656e1119155" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">235000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_32837f834c9c44619cce012a0d5b8d95" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">-9000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_4745575e99124dca9749bed5b8f64286" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">260000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_f5942079992d4e0e8f6505539124a2fe" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">117000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income Tax Disclosure [Text Block]-->
  <us-gaap:IncomeTaxDisclosureTextBlock id="Fact_773db6cba6854118b6cf2500755b06f8" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-weight: bold; font-size: 10pt;"&gt;NOTE 16 &amp;#8211; INCOME TAXES&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for the future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carry-forwards. Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of a change in tax rates on deferred tax assets and liabilities is recognized in income in the period during which such rates are enacted.&lt;/div&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;The Company considers all available evidence to determine whether it is more likely than not that some portion or all of the deferred tax assets will be realized. The ultimate realization of deferred tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become realizable. Management considers the scheduled reversal of deferred tax liabilities (including the impact of available carryback and carry-forward periods), and projected taxable income in assessing the realizability of deferred tax assets. In making such judgments, significant weight is given to evidence that can be objectively verified.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;As of each reporting date, management considers new evidence, both positive and negative, that could affect its view of the future realization of deferred tax assets. Prior to September 30, 2019, the Company had recorded a valuation allowance for the full amount of net deferred tax assets in the United States, as the realization of deferred tax assets was uncertain.&amp;#160; The Company has now concluded that, as of September 30, 2019, it was more likely than not that the Company will generate sufficient U.S. taxable income within the applicable net operating loss carry-forward periods to realize a portion of its deferred tax assets. This conclusion, and the resulting partial reversal of the deferred tax asset valuation allowance, is based upon consideration of a number of factors, including the Company&amp;#8217;s completion of a seventh consecutive quarter of profitability, recent operating results, forecast of future profitability, and a U.S. tax law change which affects reporting of foreign profits in the United States. Thus, the Company determined that there is sufficient positive objective evidence to conclude that it is more likely than not that a portion of deferred taxes are realizable. It, therefore, has reduced the valuation allowance accordingly, which resulted in a one-time tax benefit in the third quarter of $1,440.&amp;#160; In order to recognize the remaining U.S. deferred tax assets that continue to be subject to a valuation allowance, the Company will need to generate sufficient U.S. taxable income in future periods before the expiration of the deferred tax assets governed by the tax code.&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;ACM Shanghai has shown a three-year historical cumulative profit and has projections of future income. As a result, the Company maintained a partial consolidated valuation allowance for the three and nine months ended September 30, 2019 and December 31, 2018.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;The Company accounts for uncertain tax positions in accordance with the authoritative guidance on income taxes under which the Company may only recognize or continue to recognize tax positions that meet a "more likely than not" threshold. The Company recognizes accrued interest and penalties related to unrecognized tax benefits as a component of the provision for income taxes.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;The Company&amp;#8217;s effective tax rate differs from statutory rates of 21% for U.S. federal income tax purposes and 15% to 25% for Chinese income tax purposes due to the effects of the valuation allowance and certain permanent differences from book-tax differences. As a result, the Company recorded income tax benefit of $328 and income tax expense of $461&amp;#160; during the three months ended September 30, 2019 and 2018, respectively. For the nine months ended September 30, 2019 and 2018, the Company recorded income tax expense of $667 and $647, respectively.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;As of September 30, 2019, the Company's total unrecognized tax benefits were approximately $44, which would not affect the effective tax rate if recognized. The Company will recognize interest and penalties, when they occur, related to uncertain tax provisions as a component of tax expense. No interest or penalties were recognized for the three and nine months ended September 30, 2019.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: 18pt; font-size: 10pt;"&gt;The Company files income tax returns in the United States, and state and foreign jurisdictions. The federal, state and foreign income tax returns are under the statute of limitations subject to tax examinations for the tax years ended December 31, 2009 through December 31, 2018. To the extent the Company has tax attribute carry-forwards, the tax years in which the attribute was generated may still be adjusted upon examination by the U.S. Internal Revenue Service, state or foreign tax authorities to the extent utilized in a future period.&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt;"&gt;&lt;font style="color: rgb(0, 0, 0); font-size: 10pt;"&gt;The Tax Act enacted on December 22, 2017 introduced significant changes to U.S. income tax law. Effective January 1, 2018, the Tax Act reduced the U.S. statutory tax rate from 35% to 21% and created new taxes on certain foreign-sourced earnings and certain intercompany payments. Due to the timing of the enactment and the complexity involved in applying the provisions of the Tax Act, the Company made reasonable estimates of the effects and recorded provisional amounts in its financial statements as of December 31, 2017. &lt;/font&gt;&lt;font style="font-size: 10pt;"&gt;There were no adjustments made in the nine months ended September 30, 2019. The accounting for the tax effects of the Tax Act was completed in 2018.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <!--Income tax (benefit) expense-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_14948116e2c44ed2b99574dd91ab35a6" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">461000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax (benefit) expense-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_422216c3776543199f3bcf9188a953f2" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">-328000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax (benefit) expense-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_759cbc62c8bc4730a470a61e98be7799" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">667000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income tax (benefit) expense-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_b9eba919688449ffa2b202ba08577a51" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">647000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income Tax Examination, Penalties and Interest Expense-->
  <us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense id="Fact_44d0edcc2eb24b4f8564def5130b4078" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">0</us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense>
  <!--Income Tax Examination, Penalties and Interest Expense-->
  <us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense id="Fact_a88a5c3d09c24b3fb4c335bbbeb8abbe" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">0</us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense>
  <!--Increase (Decrease) in Other Noncurrent Liabilities-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities id="Fact_15e8bb86cd29432e99b6b8f2e2b18a9c" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-1441000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
  <!--Increase (Decrease) in Other Noncurrent Liabilities-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities id="Fact_4796027b05b64e2998f71efbad90a0fb" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-680000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
  <!--Advances from customers-->
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability id="Fact_2567d4d9749241119be6d1f9ae7a3d3c" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">746000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <!--Advances from customers-->
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability id="Fact_f5f33226cef9448cb545fdabb0f4940e" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">3818000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <!--Increase (Decrease) in Other Noncurrent Assets-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets id="Fact_167f9b7f936745ea8ba7afabb9a875aa" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">182000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
  <!--Increase (Decrease) in Other Noncurrent Assets-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets id="Fact_cbd37bcff84c4fde98b05961f55dc489" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-12000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_8a6a8735f1854023bf7dcfa74fbc4b8e" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-417000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_9a86b57a6994437a98fa1c67364ff901" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">5165000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Income tax payable-->
  <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable id="Fact_2669bff54b10434d8486cf783e7b67b1" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">645000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
  <!--Income tax payable-->
  <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable id="Fact_9bf409a561d44b52aa1edb9d5f38e2bc" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">162000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
  <!--Increase (Decrease) in Accounts Receivable-->
  <us-gaap:IncreaseDecreaseInAccountsReceivable id="Fact_4dd277455c88407d92d8642ca7857564" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">19634000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <!--Increase (Decrease) in Accounts Receivable-->
  <us-gaap:IncreaseDecreaseInAccountsReceivable id="Fact_eb300dec376848b187af4e83af9ab65c" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">5526000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <!--Other payables and accrued expenses-->
  <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities id="Fact_1bbad06ecf35411fb15b1d39a3fb1dd5" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">2658000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
  <!--Other payables and accrued expenses-->
  <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities id="Fact_bc3c6780c3b145c8abd264d4ab6ba619" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2352000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
  <!--Increase (Decrease) in Other Receivables-->
  <us-gaap:IncreaseDecreaseInOtherReceivables id="Fact_1ae14962287d49ef89fa0e6eaef76014" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-781000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <!--Increase (Decrease) in Other Receivables-->
  <us-gaap:IncreaseDecreaseInOtherReceivables id="Fact_8b61698a8007425d93b226d1ecb31b9f" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-1187000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_718205efec024d7aa9e28c8b57bf2c78" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">5889000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_75217b7501314cb4b853012156d6cc2d" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">15157000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Prepaid Expense-->
  <us-gaap:IncreaseDecreaseInPrepaidExpense id="Fact_3d694aaa455449ccbc9180b48c1b65df" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">1653000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <!--Increase (Decrease) in Prepaid Expense-->
  <us-gaap:IncreaseDecreaseInPrepaidExpense id="Fact_af326cf0c7ce49dd95567af7983c2e09" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-323000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_12ed1a635d784df9a7a0a5be50ca6cde" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">538000</us-gaap:InterestExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_35076bece8314ee4bb06db6d0a13b466" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">112000</us-gaap:InterestExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_abb039010bf7421f869187af2b43dba6" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">364000</us-gaap:InterestExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_d0fa96a857b04b278bdc3b64a6f41074" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">205000</us-gaap:InterestExpense>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_08f9bbc3f9434771a91cf791dc12869e" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">538000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_39b24cede9f6420f9ac7deda030217e2" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">364000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_9940bfba88834947a842b84da36fb3fe" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">205000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_b85364e95d1743ee9a863b133251d48f" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">112000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest paid-->
  <us-gaap:InterestPaidNet id="Fact_aedd3e4b6e0a4db88c3bc48d231faa4e" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">364000</us-gaap:InterestPaidNet>
  <!--Interest paid-->
  <us-gaap:InterestPaidNet id="Fact_b78daa3f08224191a12ac1c2a54bb4d1" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">538000</us-gaap:InterestPaidNet>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoods id="Fact_b8b6de06a1154dcc92a5b7c8f11a68c4" contextRef="c20190930" unitRef="U002" decimals="-3">18583000</us-gaap:InventoryFinishedGoods>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoods id="Fact_d4ec5dac150f41d8a35f0d1b6d02b1aa" contextRef="c20181231" unitRef="U002" decimals="-3">16487000</us-gaap:InventoryFinishedGoods>
  <!--Inventory Disclosure [Text Block]-->
  <us-gaap:InventoryDisclosureTextBlock id="Fact_e47a23c97fe44b94ada793390d75f334" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 4 &amp;#8211; INVENTORIES&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, inventory consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Raw&amp;#160;materials&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;14,313&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;12,646&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Work&amp;#160;in&amp;#160;process&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;10,610&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,631&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Finished&amp;#160;goods&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;18,583&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;16,487&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;inventory,&amp;#160;gross&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;43,506&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;38,764&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Inventory&amp;#160;reserve&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;inventory,&amp;#160;net&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;43,506&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;38,764&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, the Company did not have an inventory reserve and no inventory was pledged as collateral for borrowings from financial institutions. System shipments of first-tools to an existing or prospective customer, for which ownership does not transfer until customer acceptance, are classified as finished goods inventory and carried at cost until ownership is transferred.&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <!--Inventory Valuation Reserves-->
  <us-gaap:InventoryValuationReserves id="Fact_2c78b906828a4b6180df17a377c00b90" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:InventoryValuationReserves>
  <!--Inventory Valuation Reserves-->
  <us-gaap:InventoryValuationReserves id="Fact_696a2d151cd84468b3539972121c9df8" contextRef="c20190930" unitRef="U002" decimals="-3">0</us-gaap:InventoryValuationReserves>
  <!--Inventory, Gross-->
  <us-gaap:InventoryGross id="Fact_566354065ae849b59207229a8b5d44e6" contextRef="c20190930" unitRef="U002" decimals="-3">43506000</us-gaap:InventoryGross>
  <!--Inventory, Gross-->
  <us-gaap:InventoryGross id="Fact_d064dcab009b434e9e49f89c13f45507" contextRef="c20181231" unitRef="U002" decimals="-3">38764000</us-gaap:InventoryGross>
  <!--Raw materials-->
  <us-gaap:InventoryRawMaterials id="Fact_ac06cdb06176411c926942e0224f6300" contextRef="c20190930" unitRef="U002" decimals="-3">14313000</us-gaap:InventoryRawMaterials>
  <!--Raw materials-->
  <us-gaap:InventoryRawMaterials id="Fact_cd371aa506c2402cb1f4a0ac391303d4" contextRef="c20181231" unitRef="U002" decimals="-3">12646000</us-gaap:InventoryRawMaterials>
  <!--Inventories (note 4)-->
  <us-gaap:InventoryNet id="Fact_409c48fa24cb4da8ba9890d5ee7d58bd" contextRef="c20181231" unitRef="U002" decimals="-3">38764000</us-gaap:InventoryNet>
  <!--Inventories (note 4)-->
  <us-gaap:InventoryNet id="Fact_4de3c451a4114012a00423a5e2721da9" contextRef="c20190930" unitRef="U002" decimals="-3">43506000</us-gaap:InventoryNet>
  <!--Work in process-->
  <us-gaap:InventoryWorkInProcess id="Fact_31a057b067894aeca8e90586d6c10051" contextRef="c20190930" unitRef="U002" decimals="-3">10610000</us-gaap:InventoryWorkInProcess>
  <!--Work in process-->
  <us-gaap:InventoryWorkInProcess id="Fact_da30199220614192aabeb0002a76dee4" contextRef="c20181231" unitRef="U002" decimals="-3">9631000</us-gaap:InventoryWorkInProcess>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_03674c20b4944dc997302cc887a0f64a" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">95000</us-gaap:InvestmentIncomeInterest>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_51173289c10c468d94164266b94f94e6" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">20000</us-gaap:InvestmentIncomeInterest>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_9a5a503aabd44290a0b3ff51228d4169" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3000</us-gaap:InvestmentIncomeInterest>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_bc637211f7a54447b1b7e95f0227d5eb" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">128000</us-gaap:InvestmentIncomeInterest>
  <!--Long-term investments (note 10)-->
  <us-gaap:Investments id="Fact_7c725bd0206f4cf4ac44ec8ef32713a4" contextRef="c20190930" unitRef="U002" decimals="-3">5968000</us-gaap:Investments>
  <!--Long-term investments (note 10)-->
  <us-gaap:Investments id="Fact_ef07916ba37f4f3dadd2a3f2754c8414" contextRef="c20181231" unitRef="U002" decimals="-3">1360000</us-gaap:Investments>
  <!--Lessee, Operating Leases [Text Block]-->
  <us-gaap:LesseeOperatingLeasesTextBlock id="Fact_46292c32a90a4d0183e4f770db5354c5" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 8 &amp;#8211;LEASES&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The Company leases space under non-cancelable operating leases for several office and manufacturing locations. These leases do not have significant rent escalation holidays, concessions, leasehold improvement incentives, or other build-out clauses. Further, the leases do not contain contingent rent provisions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Most leases include one or more options to renew. The exercise of lease renewal options is typically at the Company&amp;#8217;s sole discretion; therefore, the majority of renewals to extend the lease terms are not included in the Company&amp;#8217;s right-of-use assets and lease liabilities as they are not reasonably certain of exercise. The Company regularly evaluates the renewal options, and when they are reasonably certain of exercise, the Company includes the renewal period in its lease term.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;As most of the Company&amp;#8217;s leases do not provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at the lease commencement date in determining the present value of the lease payments. The Company has a centrally managed treasury function; therefore, based on the applicable lease terms and the current economic environment, it applies a portfolio approach for determining the incremental borrowing rate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The components of lease expense were as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Nine Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Operating lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;363&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,064&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Short-term lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;92&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;117&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;455&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,181&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;Supplemental cash flow information related to operating leases was as follows for the period ended September 30, 2019:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 80%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Nine Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt;"&gt;Operating cash outflow from operating leases&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;455&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,181&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size: 10pt; text-indent: 18pt;"&gt;Maturities of lease liabilities for all operating leases were as follows as of September 30, 2019:&lt;/div&gt;&lt;div style="text-indent: 36pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 48%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;364&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,488&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,475&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,495&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2024&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;13&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,888&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Less: Interest&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(683&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Present value of lease liabilities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,205&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of September 30, 2019:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Remaining lease term and discount rate:&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(255, 0, 0);"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Weighted average remaining lease term (years)&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;3.27&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right;"&gt;5.42%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <!--Lessee, Operating Lease, Liability, Payments, Due after Year Five-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive id="Fact_3b36b5dc7bac433ebcd661f78f4d936d" contextRef="c20190930" unitRef="U002" decimals="-3">13000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Four-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour id="Fact_dc48134608cf4deb9a962e1aa6892118" contextRef="c20190930" unitRef="U002" decimals="-3">1495000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Five-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive id="Fact_8593e041c1f2452c82107b3ec592bc12" contextRef="c20190930" unitRef="U002" decimals="-3">53000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
  <!--Lessee, Operating Lease, Liability, Payments, Due-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue id="Fact_7c8076e793d74f29848d11f6a5230a1a" contextRef="c20190930" unitRef="U002" decimals="-3">4888000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <!--Lessee, Operating Lease, Liability, Maturity [Table Text Block]-->
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock id="Fact_2f09c807a6dc4547a15cd1e56650500c" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; text-indent: 18pt;"&gt;Maturities of lease liabilities for all operating leases were as follows as of September 30, 2019:&lt;/div&gt;&lt;div style="text-indent: 36pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 48%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;364&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,488&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,475&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,495&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;2024&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;13&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,888&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Less: Interest&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(683&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Present value of lease liabilities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,205&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <!--2019-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear id="Fact_8e1c418f89a04805bd6b1e2b809ebf3f" contextRef="c20190930" unitRef="U002" decimals="-3">364000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
  <!--Lessee, Operating Lease, Liability, Undiscounted Excess Amount-->
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount id="Fact_7e2cfbde5e5747ea9727be8673e42b12" contextRef="c20190930" unitRef="U002" decimals="-3">683000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Three-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree id="Fact_08693a13e2e04cdca27d60c2791f5f4c" contextRef="c20190930" unitRef="U002" decimals="-3">1475000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Two-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo id="Fact_de986a394cd544e8ba575523eede1a86" contextRef="c20190930" unitRef="U002" decimals="-3">1488000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <!--Lease, Cost-->
  <us-gaap:LeaseCost id="Fact_29a1ba45df74488188ba13aa28deddf0" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">1181000</us-gaap:LeaseCost>
  <!--Lease, Cost-->
  <us-gaap:LeaseCost id="Fact_bac3ce54f7b14b37a56a6f6d11c227d2" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">455000</us-gaap:LeaseCost>
  <!--Lease, Cost [Table Text Block]-->
  <us-gaap:LeaseCostTableTextBlock id="Fact_29ab31554c8e4e6e9cb0fc2826bc7591" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The components of lease expense were as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Nine Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Operating lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;363&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,064&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Short-term lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;92&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;117&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;455&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,181&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_28d65c8b0b4b4ae9a97e342497baaa24" contextRef="c20190930" unitRef="U002" decimals="-3">61983000</us-gaap:Liabilities>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_ae3945bfb3a6401e9422afd72284fba7" contextRef="c20181231" unitRef="U002" decimals="-3">50723000</us-gaap:Liabilities>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_1c3f0896daed4339b4975068ab48a147" contextRef="c20190930" unitRef="U002" decimals="-3">180216000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_2e9c818dc00f4b25973356a801a9cc1f" contextRef="c20181231" unitRef="U002" decimals="-3">103047000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_09a7cae0b14b44f7a68c458342e7bf6e" contextRef="c20181231" unitRef="U002" decimals="-3">46140000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_ea7b49975f824972ae9c382d5cd62bf4" contextRef="c20190930" unitRef="U002" decimals="-3">56148000</us-gaap:LiabilitiesCurrent>
  <!--Maximum borrowing capacity-Line of Credit 12 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_0c609d4da72e49dbb11410c39a735c13" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit12Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 3 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_382f70aa7af34e0a911a3826840d15ab" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 6 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_42335829a888413f832425012294b46c" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U005" decimals="-3">10000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 1 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_4ff7331c3caa40bb88e4570d39d5c075" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 5 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_55bd435e35eb4f1e8eba2f2a9b72a02c" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U005" decimals="-3">30000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 4 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_59969ebd665b4b84b1191ffd70945737" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U005" decimals="-3">30000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 8 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_600756ff54f54bbabac04bc97905c00e" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 10 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_8d1530fb53dd4733ba90f083fe0039a6" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit10Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 2 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_8ef9b75116e943dea7209cfbacb5008a" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 9 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_9013270e95144f2fad726a27733a5cc9" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 11 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_bffa4235e2de4610b7a59e8874d3bab2" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit11Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 7 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_f6f63f5d30184c5386214113a3b5b7ba" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Annual interest rate-Line of Credit 1 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_2aba12b70924413d83ddbaa8d8ea9daa" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U004" decimals="4">0.0499</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 7 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_38f1044e89544c1c93691efbc67990df" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 3 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_4ba07d3780f24a398be0513418b21058" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U004" decimals="4">0.0522</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 11 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_51d5f94751b14e56b19dc1ce8dd743c4" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit11Member" unitRef="U004" decimals="4">0.0494</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 6 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_548247db8b794aa185190c4bd92aade3" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U004" decimals="4">0.0544</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 5 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_72b044848f8d498f82e65db84e7522c4" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U004" decimals="4">0.0522</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 2 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_af062c8ff86b43feac05026aa5135d35" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U004" decimals="4">0.0515</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 12 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_b2b5c849a9f749b4b275b146baf9d148" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit12Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 10 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_d197a4770df645bda3fb608f18c0e036" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit10Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 8 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_d9dbe0c7f627492db7b8ab74e1420527" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 9 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_ee6c8296204249178726ed89e323857f" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 4 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_f7c988104c7b48848a2eb0dee9ea85af" contextRef="c20190101to20190930_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U004" decimals="4">0.0522</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Loans and Leases Receivable, Related Parties-Ninebell Co., Ltd [Member]-->
  <us-gaap:LoansAndLeasesReceivableRelatedParties id="Fact_d659b57368184fe1a8906c3e9f5548e9" contextRef="c20170818_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">946000</us-gaap:LoansAndLeasesReceivableRelatedParties>
  <!--Loans, Notes, Trade and Other Receivables Disclosure [Text Block]-->
  <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock id="Fact_5b220811e1ea47399a68dd36454b37a0" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 3 &amp;#8211; ACCOUNTS RECEIVABLE&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, accounts receivable consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 50%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 26%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 26%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accounts&amp;#160;receivable&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;43,144&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;24,608&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 26%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Less:&amp;#160;Allowance&amp;#160;for&amp;#160;doubtful&amp;#160;accounts&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(255, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 26%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;43,144&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;24,608&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The Company reviews accounts receivable on a periodic basis and makes general and specific allowances when there is doubt as to the collectability of individual balances. No allowance for doubtful accounts was considered necessary at September 30, 2019 or December 31, 2018. At September 30, 2019 &lt;font style="color: rgb(0, 0, 0);"&gt;and December 31, 2018, accounts receivable of $0 and&lt;/font&gt; $1,457, respectively, &lt;font style="color: rgb(0, 0, 0);"&gt;were pledged as collateral for borrowings from financial institutions.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
  <!--Accounts receivable pledged as collateral for borrowings-->
  <us-gaap:LoansPledgedAsCollateral id="Fact_4bb6b05c4a204aa5ad785c1de9fb19b0" contextRef="c20190930" unitRef="U002" decimals="-3">0</us-gaap:LoansPledgedAsCollateral>
  <!--Accounts receivable pledged as collateral for borrowings-->
  <us-gaap:LoansPledgedAsCollateral id="Fact_9b4cff32f3ee4204b16dee33fe0acc52" contextRef="c20181231" unitRef="U002" decimals="-3">1457000</us-gaap:LoansPledgedAsCollateral>
  <!--Noncontrolling Interest, Change in Redemption Value-->
  <us-gaap:MinorityInterestChangeInRedemptionValue id="Fact_a53ac821d90a42a1b05901acb8b9434f" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">27264000</us-gaap:MinorityInterestChangeInRedemptionValue>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_1a1ed87790f24da69bcef9a29d1dcf81" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_367a5418c5fa4693bdc4f1e0c3be5b77" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">307000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_c3d9f5168133461abe97e371faa2a9d9" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">307000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_c7aba659110e46e595e6feacb9718375" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_c4752500c0b54519b134266faac5e2a0" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-4752000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_ca594d01b221428a9a74be52652deb8d" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-2733000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_92b9d4b4a62842e98ece0cc17c98cf04" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-5294000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_a695ab5fda0c42abba8708d1e7fd89cd" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-1948000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_3dfa3e5091894b308f8b4f9e7dcdca62" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">59175000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_94b23c624eba43c5b2c9ed93ecd33ccc" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">5614000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_39cb09467a31422d82d46605b1883b0c" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">4288000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_8fc05d0355994f8d96c86759b00d6a46" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">8782000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_f2945a675be04f58a4b806243b7d6f05" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">14950000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_fd9fa4d013f0428ab0b661bef4109d7a" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3853000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_0289be2c42a440f390521980f17a72c7" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_08e69b48df8d456c99e7d351481d9675" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_0b891937f4f444c7a2691a250f67a687" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_1df3ec66d61f4e61b13867a1a16f714a" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_64d589d1492e480cb3c8bcfa614b6055" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_8203684841c74eabb43903c2d2db9848" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">14950000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_842a997e258f444a97399fc53ef20709" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">8782000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_8b3445ee14b74fab8dd508ff4102b4da" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_95c33367236b4864a5427b17da79c498" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_97a316b7e8ce456691edfe2d6bb2c75d" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_9e2061837131487c9646c663331ef067" contextRef="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">3853000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_a21ceb08ae644dd7a576490b3e616688" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_ada3d474b27f48049e39e0dc91e048cf" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_b6983d275afd403491ea0ee9f0a750f9" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_bcbf0087a05e4cd49d9d7e4832c59f17" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_c018b7bdaaa44511acfe5db09b6ac61c" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_c20c9528897849e197bb08c029060f9b" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_c50a3796f82c4d9ca85156bca293542a" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">4288000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_cf5e6fdd07ac4ac18020e5cd23b031a1" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_d475bad7bb21455da8bf56b701abea23" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Available to Common Stockholders, Basic-->
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic id="Fact_0636f344cb7c4934a3aad3186df69939" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">14950000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <!--Net Income (Loss) Available to Common Stockholders, Basic-->
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic id="Fact_2110a714002643f4a9fae75f05799bbf" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">4288000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <!--Net Income (Loss) Available to Common Stockholders, Basic-->
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic id="Fact_a2db7291a12f424cbbb82788b6166e02" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3853000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <!--Net Income (Loss) Available to Common Stockholders, Basic-->
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic id="Fact_de45efc5f7fd4602b3061c8b539f5902" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">8782000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <!--Recent Accounting Pronouncements-->
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock id="Fact_04bb609c1666492e983ab9ee9987810f" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Recent Accounting Pronouncements&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In February 2016, the Financial Accounting Standards Board (&amp;#8220;FASB&amp;#8221;) issued Accounting Standards Update (&amp;#8220;ASU&amp;#8221;) 2016-02, &lt;font style="font-style: italic;"&gt;Leases (Topic 842)&lt;/font&gt;. The amendments in &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2016-02&lt;/font&gt; create Topic 842, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;, and supersede the leases requirements in Topic 840, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;. Topic 842 specifies the accounting for leases. The objective of Topic 842 is to establish the principles that lessees and lessors shall apply to report useful information to users of financial statements about the amount, timing, and uncertainty of cash flows arising from a lease. The main difference between Topic 842 and Topic 840 is the recognition of lease assets and lease liabilities for those leases classified as operating leases under Topic 840. Topic 842 retains a distinction between finance leases and operating leases. The classification criteria for distinguishing between finance leases and operating leases are substantially similar to the classification criteria for distinguishing between capital leases and operating leases in the previous lease guidance. The result of retaining a distinction between finance leases and operating leases is that under the lessee accounting model in Topic 842, the effect of leases in the statement of comprehensive income and the statement of cash flows is largely unchanged from previous GAAP.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Effective January 1, 2019, the Company adopted ASU 2016-02.&amp;#160; The original guidance required application on a modified retrospective basis with the earliest period presented.&amp;#160; In August 2018, the FASB issued ASU 2018-11, &lt;font style="font-style: italic;"&gt;Targeted Improvements to ASC 842&lt;/font&gt;, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;, which included an option to not restate comparative periods in transition and elect to use the effective date of Accounting Standards Codification (&amp;#8220;ASC&amp;#8221;) 842&lt;font style="font-style: italic;"&gt;&amp;#160;&lt;/font&gt;as the date of initial application of transition, which the Company elected.&amp;#160; As a result of its adoption of ASC 842 as of January 1, 2019, the Company recorded operating lease right-of-use assets of $5,109 and lease liabilities of $5,109.&amp;#160; The adoption of ASC 842 had no impact on the Company&amp;#8217;s profit or cash flows for the three and nine months ended September 30, 2019.&amp;#160; In addition, the Company elected the package of practical expedients permitted under the transition guidance within the new standard, which allowed the Company to carry forward the historical lease classification. Additional information and disclosures required by this new standard are contained in note 8.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2018, the FASB issued ASU 2018-07, &lt;font style="font-style: italic;"&gt;Compensation&amp;#8212;Stock Compensation (Topic 718)&amp;#8212;Improvements to Nonemployee Share-Based Payment Accounting&lt;/font&gt;, which simplifies several aspects of the accounting for nonemployee share-based payment transactions resulting from expanding the scope of Topic 718, &lt;font style="font-style: italic;"&gt;Compensation&amp;#8212;Stock Compensation&lt;/font&gt;, to include share-based payment transactions for acquiring goods and services from nonemployees. Some of the areas for simplification apply only to nonpublic entities. ASU 2018-07 specifies that Topic 718 applies to all share-based payment transactions in which a grantor acquires goods or services to be used or consumed in a grantor&amp;#8217;s own operations by issuing share-based payment awards. ASU 2018-07 also clarifies that Topic 718 does not apply to share-based payments used to effectively provide (1) financing to the issuer or (2) awards granted in conjunction with selling goods or services to customers as part of a contract accounted for under the new revenue recognition standard set forth in ASU 2014-09, &lt;font style="font-style: italic;"&gt;Revenue from Contracts with Customers (Topic 606)&lt;/font&gt;. Effective January 1, 2019, the Company adopted ASU 2018-07, which did not have a material impact on the Company&amp;#8217;s consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In August 2018, the FASB issued ASU 2018-13,&lt;font style="font-style: italic;"&gt; Fair Value Measurement (Topic 820)&lt;/font&gt;, which eliminates, adds and modifies certain disclosure requirements for fair value measurements. The modified standard eliminates the requirement to disclose changes in unrealized gains and losses included in earnings for recurring Level 3 fair value measurements and requires changes in unrealized gains and losses be included in other comprehensive income for recurring Level 3 fair value measurements of instruments. The standard also requires the disclosure of the range and weighted average used to develop significant unobservable inputs and how weighted average is calculate for recurring and nonrecurring Level 3 fair value measurements. The amendment is effective for fiscal years beginning after December 15, 2019 and interim periods within that fiscal year, with early adoption permitted. The Company is evaluating the impact of the adoption of ASU 2018-13 on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In January 2017, the FASB issued ASU 2017-04, &lt;font style="font-style: italic;"&gt;Intangibles&amp;#8212;Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&lt;/font&gt;, which removes Step 2 from the goodwill impairment test. An entity will apply a one-step quantitative test and record the amount of goodwill impairment as the excess of a reporting unit&amp;#8217;s carrying amount over its fair value, not to exceed the total amount of goodwill allocated to the reporting unit. &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2017-04&lt;/font&gt; does not amend the optional qualitative assessment of goodwill impairment. A business entity that files periodic reports with the Securities and Exchange Commission must adopt the amendments in &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2017-04&lt;/font&gt; for its annual or any interim goodwill impairment test in fiscal years beginning after December 15, 2019. Early adoption is permitted for interim or annual goodwill impairment tests performed on testing dates after January 1, 2017. The Company is evaluating the impact of the adoption of ASU 2017-04 on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2016, the FASB issued ASU 2016-13, &lt;font style="font-style: italic;"&gt;Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&lt;/font&gt;. ASU 2016-13 replaced the incurred loss impairment methodology under current GAAP with a methodology that reflects expected credit losses and requires consideration of a broader range of reasonable and supportable information to inform credit loss estimates. ASU 2016-13 requires use of a forward-looking expected credit loss model for accounts receivables, loans, and other financial instruments. ASU 2016-13 is effective for fiscal years beginning after December 15, 2019, with early adoption permitted. Adoption of the standard requires using a modified retrospective approach through a cumulative-effect adjustment to retained earnings as of the effective date to align existing credit loss methodology with the new standard. The Company will adopt ASU 2016-13 effective January 1, 2020. The Company is evaluating the impact of this standard on its consolidated financial statements, including accounting policies, processes, and systems, but does not expect the standard will have a material impact on its consolidated financial statements.&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <!--Weighted average remaining lease term-->
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 id="Fact_21231fcee13148eb969f5d3d5dea4de4" contextRef="c20190930">P3Y3M7D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <!--Operating lease right-of-use assets, net (note 8)-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_0a9a0262ab244ad6aaa64a10fee84fd4" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating lease right-of-use assets, net (note 8)-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_6ea05d0c75a94a69aa881dcc76195358" contextRef="c20190930" unitRef="U002" decimals="-3">4205000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating lease right-of-use assets, net (note 8)-ASU 2018-11 [Member]-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_590ab94b7b3d4aa490c97029aa127be5" contextRef="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201811Member" unitRef="U002" decimals="-3">5109000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating lease cost-->
  <us-gaap:OperatingLeaseCost id="Fact_195557a787fe46c891f74a2082fc9bad" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">363000</us-gaap:OperatingLeaseCost>
  <!--Operating lease cost-->
  <us-gaap:OperatingLeaseCost id="Fact_e26ca1028993476faee2f9716b463fe0" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">1064000</us-gaap:OperatingLeaseCost>
  <!--Operating Lease, Expense-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:OperatingLeaseExpense id="Fact_7b6db912048b496f8edd395ac098928f" contextRef="c20180701to20180930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">152000</us-gaap:OperatingLeaseExpense>
  <!--Operating Lease, Expense-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:OperatingLeaseExpense id="Fact_b2a11b9570e444d6bac60dc42b35caf1" contextRef="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">148000</us-gaap:OperatingLeaseExpense>
  <!--Operating Lease, Expense-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:OperatingLeaseExpense id="Fact_d3e0df9211b14d5fa60f8f905b86b63a" contextRef="c20190101to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">448000</us-gaap:OperatingLeaseExpense>
  <!--Operating Lease, Expense-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:OperatingLeaseExpense id="Fact_d77ce2260be441e580a2aa685e4900dc" contextRef="c20180101to20180930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">471000</us-gaap:OperatingLeaseExpense>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_20730dd1e41a4a1ebba008e5263c50a6" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">9224000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_a44a30d34079445898a2f23637825a4b" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">6883000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_beed7388d4f7479299e7e456866356eb" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">24269000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_f5b5d77ccfa34057a91047ac0c476a47" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">20302000</us-gaap:OperatingExpenses>
  <!--Weighted average discount rate-->
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent id="Fact_c4c12cc43487432f9afd1bc678c778aa" contextRef="c20190930" unitRef="U004" decimals="4">0.0542</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_2f3aa7dca6cf497e99d2c61834646c00" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">3831000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_43919190ee8846fd8e92c22c088b5487" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3404000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_96505b7e51e54e8c8c58bacceb1e1c7d" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">7030000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_c8826367d69a4b489cb56660f9ff334e" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">13942000</us-gaap:OperatingIncomeLoss>
  <!--Current portion of operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_90ba9357718742b2b1483f5f054cd14f" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Current portion of operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_e3a4db18003749fc8d1a91ded311d520" contextRef="c20190930" unitRef="U002" decimals="-3">1350000</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Long-term operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_be5f3bada3764dc983ba8b4f8c569733" contextRef="c20190930" unitRef="U002" decimals="-3">2855000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Long-term operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_f9e1470c096f4965b3c4d24a0685ce03" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Operating cash outflow from operating leases-->
  <us-gaap:OperatingLeasePayments id="Fact_a856c95eedea4a68b2494e959b9bace1" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">1181000</us-gaap:OperatingLeasePayments>
  <!--Operating cash outflow from operating leases-->
  <us-gaap:OperatingLeasePayments id="Fact_b4143378b86746a49500374a079159df" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">455000</us-gaap:OperatingLeasePayments>
  <!--Present value of lease liabilities-ASU 2018-11 [Member]-->
  <us-gaap:OperatingLeaseLiability id="Fact_af6221beeb3344a0aad84e4a661d7f0d" contextRef="c20181231_AdjustmentsForNewAccountingPronouncementsAxis_AccountingStandardsUpdate201811Member" unitRef="U002" decimals="-3">5109000</us-gaap:OperatingLeaseLiability>
  <!--Present value of lease liabilities-->
  <us-gaap:OperatingLeaseLiability id="Fact_ba7e92c5f3d54041928f32642a9725d5" contextRef="c20190930" unitRef="U002" decimals="-3">4205000</us-gaap:OperatingLeaseLiability>
  <!--Other Noncurrent Liabilities [Table Text Block]-->
  <us-gaap:OtherNoncurrentLiabilitiesTableTextBlock id="Fact_37b43ed0c82e4a85bb3a82df6bbff889" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div&gt;As of September 30, 2019, and December 31, 2018, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;&lt;div style="text-align: center; text-indent: 18pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 66%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Stress&amp;#160;Free&amp;#160;Polishing&amp;#160;project,&amp;#160;commenced&amp;#160;in&amp;#160;2008&amp;#160;and&amp;#160;2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,281&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,483&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Electro&amp;#160;Copper&amp;#160;Plating&amp;#160;project,&amp;#160;commenced&amp;#160;in&amp;#160;2014&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,456&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,860&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Polytetrafluoroethylene,&amp;#160;commenced&amp;#160;in&amp;#160;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;143&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;178&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Other&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;100&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;62&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;2,980&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,583&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OtherNoncurrentLiabilitiesTableTextBlock>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_4a0e481b2dac4ca1b2e2fd09db374c7b" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">-746000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_5fa2916bf6724bcb9dc7d527ecc40cc3" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-2902000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_6039f15eabca49c9825d1ecab334ffde" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-1077000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_fd670c50344d4092be6dd03afddcbff6" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">-2591000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other receivables-->
  <us-gaap:OtherReceivablesNetCurrent id="Fact_a67823a1abef484ca6fbb9be99c6287f" contextRef="c20181231" unitRef="U002" decimals="-3">3547000</us-gaap:OtherReceivablesNetCurrent>
  <!--Other receivables-->
  <us-gaap:OtherReceivablesNetCurrent id="Fact_e268d078a8404c3ea771549f96c2326d" contextRef="c20190930" unitRef="U002" decimals="-3">2152000</us-gaap:OtherReceivablesNetCurrent>
  <!--Other payables and accrued expenses (note 7)-->
  <us-gaap:OtherAccountsPayableAndAccruedLiabilities id="Fact_495a9e7b7054467caf0fe54f91019f50" contextRef="c20190930" unitRef="U002" decimals="-3">13970000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
  <!--Other payables and accrued expenses (note 7)-->
  <us-gaap:OtherAccountsPayableAndAccruedLiabilities id="Fact_b0dcb3505c194002a2258ad5bbc32d67" contextRef="c20181231" unitRef="U002" decimals="-3">10410000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
  <!--Other long-term assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_a13bd6fd32f54c039953b9a792258438" contextRef="c20190930" unitRef="U002" decimals="-3">222000</us-gaap:OtherAssetsNoncurrent>
  <!--Other long-term assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_a3cf870f60244ac693327520d1147293" contextRef="c20181231" unitRef="U002" decimals="-3">40000</us-gaap:OtherAssetsNoncurrent>
  <!--OTHER LONG-TERM LIABILITIES-->
  <us-gaap:OtherLiabilitiesDisclosureTextBlock id="Fact_47a1dafc0007423dabf6af959a28c09b" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 9 &amp;#8211; OTHER LONG-TERM LIABILITIES&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Other long-term liabilities represent government subsidies received from PRC governmental authorities for development and commercialization of certain technology but not yet recognized. As of September 30, 2019, and December 31, 2018, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;&lt;div style="text-align: center; text-indent: 18pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 66%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Stress&amp;#160;Free&amp;#160;Polishing&amp;#160;project,&amp;#160;commenced&amp;#160;in&amp;#160;2008&amp;#160;and&amp;#160;2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,281&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,483&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Electro&amp;#160;Copper&amp;#160;Plating&amp;#160;project,&amp;#160;commenced&amp;#160;in&amp;#160;2014&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,456&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,860&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Subsidies&amp;#160;to&amp;#160;Polytetrafluoroethylene,&amp;#160;commenced&amp;#160;in&amp;#160;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;143&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;178&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Other&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;100&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;62&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;2,980&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,583&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OtherLiabilitiesDisclosureTextBlock>
  <!--Other income, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_64b0f896d34f423886b955ab1b26b3ae" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">1850000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other income, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_8fb395938d994565b65e7ad54082c2fb" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2132000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other income, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_c25f2f3252714acf8f3c7e74342d146a" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">902000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other income, net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_e80744b10e5c4727b7794a09d4cf1cc5" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">1213000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other long-term liabilities (note 9)-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_5426dcaf03b443d1b45915d99a3c2ac5" contextRef="c20190930" unitRef="U002" decimals="-3">2980000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_5c75e93685824411a286e52dd3156485" contextRef="c20181231" unitRef="U002" decimals="-3">4583000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Polytetrafluoroethylene [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_099ebf169d7546e087a538f34da4590b" contextRef="c20181231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember" unitRef="U002" decimals="-3">178000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Other [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_12416243192945f8b1e5c2aa4fef1d02" contextRef="c20190930_DebtInstrumentAxis_OtherMember" unitRef="U002" decimals="-3">100000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Electro Copper Plating project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_4a553298030947dda18bfc83cd5612fd" contextRef="c20181231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember" unitRef="U002" decimals="-3">2860000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Other [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_7803dc194c144f1cb7943d1c533fa108" contextRef="c20181231_DebtInstrumentAxis_OtherMember" unitRef="U002" decimals="-3">62000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Polytetrafluoroethylene [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_901f3304551a46579880d9dcc73d1656" contextRef="c20190930_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember" unitRef="U002" decimals="-3">143000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Stress Free Polishing project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_934ee306a04a4066ba245da56f731c73" contextRef="c20190930_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember" unitRef="U002" decimals="-3">1281000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Stress Free Polishing project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_bce57c176d0f42cc8654642a6902468e" contextRef="c20181231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember" unitRef="U002" decimals="-3">1483000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Electro Copper Plating project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_bea0d7e874e74cc8a2f47c5badbd1f35" contextRef="c20190930_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember" unitRef="U002" decimals="-3">1456000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax, Portion Attributable to Noncontrolling Interest-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest id="Fact_482d95a1576949689dd869c5e8f71b36" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-683000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest>
  <!--Others-->
  <us-gaap:OtherAccruedLiabilitiesCurrent id="Fact_2132ffb7f7434c29af76e26f41c84f5c" contextRef="c20181231" unitRef="U002" decimals="-3">1950000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <!--Others-->
  <us-gaap:OtherAccruedLiabilitiesCurrent id="Fact_79002b3eb88b40049e896de0e5f7fc28" contextRef="c20190930" unitRef="U002" decimals="-3">2860000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_051f89c4dca94ee8bfcdc56898463aaf" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-1077000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_07116995ea49499b8aa468cc16b0fb84" contextRef="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_108a02d4707c4180b1085cd877169bf3" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">-746000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_23c9456ce312450d92f2ce07a80a37f7" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_31c8689374a7406983c143e3053b9aac" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">-1909000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_34b299e7dad64ffb848daf558c2d8063" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_4187dd932e9946aeac7e5a5d2815badc" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_4216e822555e4a49ae2dc68e7a27867e" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_4cbf97b132a14b1e81dd44fa2fedc3f9" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_4ff0230ff79c425684f75c45fa283824" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_57fbb9cf80b942febb72070b1be8dc1c" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_69308c8eb4d343a1ad2802df6a2d1f12" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_6f81b8b4f24a41e5bb64a89af017e6f3" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">-1077000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_7065011a7bee4187a313577d23a2fc2b" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">-2220000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_8a1dff4eab784dca95ce5c54a4d4e5aa" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_911d1ac7e4964c5d8b1bc3230ba84361" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-746000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_b9f2000ec8d44dda9eb6a45d214ba9f1" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_c87863352b6e4c4a8a6dea62f9c983d0" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_cd270e8dcc314ee297e36f12d884cda8" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-1909000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_dc7e25ce7b594d68b34fd630db8701cb" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-2220000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_dfd96e2430b544fa86c9d78a65d54cb2" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_e2c2b96083154d929668151c53786e6e" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_e8fb3df72bcd440eae80eacc14585a93" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_f5279d1f8c0b418c89738a7e76160e6f" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock id="Fact_30f1c333ea304920b834983060be29a8" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Payments for Repurchase of Common Stock-->
  <us-gaap:PaymentsForRepurchaseOfCommonStock id="Fact_893063b211794c8b97a792a83005a0a6" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">785000</us-gaap:PaymentsForRepurchaseOfCommonStock>
  <!--Monthly rental fee-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:PaymentsForRent id="Fact_2706f2070b944287a1cbb6e7a291bdc6" contextRef="c20180426to20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">55000</us-gaap:PaymentsForRent>
  <!--Monthly rental fee-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:PaymentsForRent id="Fact_a0addd3997344782ab0e30f8a4392406" contextRef="c20180426to20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U005" decimals="-3">366000</us-gaap:PaymentsForRent>
  <!--Payments to Acquire Intangible Assets-->
  <us-gaap:PaymentsToAcquireIntangibleAssets id="Fact_e8e1e4819b8649eb8161d6fdf82b5893" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">114000</us-gaap:PaymentsToAcquireIntangibleAssets>
  <!--Payments to Acquire Intangible Assets-->
  <us-gaap:PaymentsToAcquireIntangibleAssets id="Fact_fe4de7990bc748c1b29bcdf1c465868e" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">350000</us-gaap:PaymentsToAcquireIntangibleAssets>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_95438d5ff7da42999ff12f128e803904" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">1598000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_b8d8bf07ef3547d4875cd6f55410ceaa" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">832000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Interest in Subsidiaries and Affiliates-->
  <us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates id="Fact_5df1b248824e4aae8321a2bc7d6d7386" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">4348000</us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates>
  <!--Payments to Acquire Interest in Subsidiaries and Affiliates-->
  <us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates id="Fact_cc62af3ab28345f98179c81f5bff243d" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:PaymentsToAcquireInterestInSubsidiariesAndAffiliates>
  <!--Prepaid expenses-->
  <us-gaap:PrepaidExpenseCurrent id="Fact_5abe186fd5764de0bb7aecc24e0fbd6e" contextRef="c20181231" unitRef="U002" decimals="-3">1985000</us-gaap:PrepaidExpenseCurrent>
  <!--Prepaid expenses-->
  <us-gaap:PrepaidExpenseCurrent id="Fact_655ad0ae7c684d89be0bfae87b2218e0" contextRef="c20190930" unitRef="U002" decimals="-3">1006000</us-gaap:PrepaidExpenseCurrent>
  <!--Gross proceeds of common stock-->
  <us-gaap:ProceedsFromIssuanceOfCommonStock id="Fact_9c77366e169942158bacdd9684edbfcb" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <!--Gross proceeds of common stock-->
  <us-gaap:ProceedsFromIssuanceOfCommonStock id="Fact_a27a7e9b3af04da7873da84668b44a24" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">26463000</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <!--Gross proceeds of common stock-Common Class A [Member]-->
  <us-gaap:ProceedsFromIssuanceOfCommonStock id="Fact_9c7f23aed39645a1ae8b98a029caad05" contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">28750000</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <!--Proceeds from Noncontrolling Interests-->
  <us-gaap:ProceedsFromMinorityShareholders id="Fact_8ed63b3dd1ef46c7996f6c16c76b0ce3" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">27264000</us-gaap:ProceedsFromMinorityShareholders>
  <!--Proceeds from Noncontrolling Interests-->
  <us-gaap:ProceedsFromMinorityShareholders id="Fact_a7ae88521be147f1a689be5ed9c8bcae" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</us-gaap:ProceedsFromMinorityShareholders>
  <!--Proceeds from stock option exercise to common stock-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_a945a82a7337454e9a4ba4e980ccb483" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">312000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from stock option exercise to common stock-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_fa61385f6c1b41f9a414fa00c87911e1" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">511000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from short-term borrowings-->
  <us-gaap:ProceedsFromShortTermDebt id="Fact_99b8a6002ad44eb9be715917def7c1ce" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">18267000</us-gaap:ProceedsFromShortTermDebt>
  <!--Proceeds from short-term borrowings-->
  <us-gaap:ProceedsFromShortTermDebt id="Fact_e3314d94a0a74b60a6e782282f221077" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">13065000</us-gaap:ProceedsFromShortTermDebt>
  <!--Accrued warranty-->
  <us-gaap:ProductWarrantyAccrualClassifiedCurrent id="Fact_9a394ee204124334a189fd7b8366ec31" contextRef="c20181231" unitRef="U002" decimals="-3">1710000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
  <!--Accrued warranty-->
  <us-gaap:ProductWarrantyAccrualClassifiedCurrent id="Fact_ca7b650b081346b7b08f4608f08043f6" contextRef="c20190930" unitRef="U002" decimals="-3">2633000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_35659577d39d47febcdeab6f657369c9" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">4288000</us-gaap:ProfitLoss>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_8eeb34d5f397411a92c0f29977250866" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">15257000</us-gaap:ProfitLoss>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_a2b8050062f949c0bfb4682483f8deaf" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3853000</us-gaap:ProfitLoss>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_efef47d9b12c4b229a50d429ab2a98e8" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">9089000</us-gaap:ProfitLoss>
  <!--Total cost-Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_094a74312a6c485584709bd14499c8b2" contextRef="c20190930_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember" unitRef="U002" decimals="-3">3851000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_0e82e8b278284d148197379c0f6fc48d" contextRef="c20181231" unitRef="U002" decimals="-3">11778000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Transportation Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_24cb733e70d84a28a79b1ebc9267ab8a" contextRef="c20181231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember" unitRef="U002" decimals="-3">184000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Transportation Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_3b1654b2677645a38c07e671cffe5f5f" contextRef="c20190930_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember" unitRef="U002" decimals="-3">123000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_4e46400043b945028db6edfaf4919043" contextRef="c20190930" unitRef="U002" decimals="-3">5999000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Office Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_4feeb4b6e98847a6adafc7f0357823e1" contextRef="c20190930_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember" unitRef="U002" decimals="-3">609000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Leasehold Improvement [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_52bff56af4894e0fad9e98c7a9bd30e3" contextRef="c20181231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U002" decimals="-3">1379000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_5499abc832e14de7a63eb783f0479aa5" contextRef="c20181231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember" unitRef="U002" decimals="-3">9703000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Leasehold Improvement [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_57170d2f44f649b2ab252147fc3ee233" contextRef="c20190930_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U002" decimals="-3">1416000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Office Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_7cab852ad74e49909d8bafa33f8fa126" contextRef="c20181231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember" unitRef="U002" decimals="-3">512000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Property, Plant and Equipment Disclosure [Text Block]-->
  <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock id="Fact_527c0686ddfa48958f006ecc035ad0ae" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 5 &amp;#8211; PROPERTY, PLANT AND EQUIPMENT, NET&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, property, plant and equipment consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Manufacturing&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;3,851&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,703&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Office&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;609&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;512&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Transportation&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;123&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;184&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Leasehold&amp;#160;improvement&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,416&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,379&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;5,999&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;11,778&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Less:&amp;#160;Total&amp;#160;accumulated&amp;#160;depreciation&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;(2,920&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(8,102&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Construction&amp;#160;in&amp;#160;progress&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;494&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;32&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&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: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;property,&amp;#160;plant&amp;#160;and&amp;#160;equipment,&amp;#160;net&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,573&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,708&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; color: rgb(0, 0, 0); font-size: 10pt;"&gt;Depreciation expense was $176 and $84 for the three months ended September 30, 2019 and 2018, respectively, and $528 and $257 for the nine months ended September 30, 2019 and 2018, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
  <!--Property, Plant and Equipment [Table Text Block]-->
  <us-gaap:PropertyPlantAndEquipmentTextBlock id="Fact_4bb388de1050418ba9a8462106bcb253" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, property, plant and equipment consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Manufacturing&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;3,851&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,703&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Office&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;609&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;512&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Transportation&amp;#160;equipment&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;123&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;184&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Leasehold&amp;#160;improvement&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;1,416&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,379&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;5,999&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;11,778&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Less:&amp;#160;Total&amp;#160;accumulated&amp;#160;depreciation&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;(2,920&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(8,102&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Construction&amp;#160;in&amp;#160;progress&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;494&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;32&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&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: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;property,&amp;#160;plant&amp;#160;and&amp;#160;equipment,&amp;#160;net&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,573&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,708&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
  <!--Property, plant and equipment, net (note 5)-->
  <us-gaap:PropertyPlantAndEquipmentNet id="Fact_a885520179b54bbeb1dec02b9157c278" contextRef="c20190930" unitRef="U002" decimals="-3">3573000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Property, plant and equipment, net (note 5)-->
  <us-gaap:PropertyPlantAndEquipmentNet id="Fact_f7c23ee3a5454fc5bb130b344ee319a7" contextRef="c20181231" unitRef="U002" decimals="-3">3708000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Components of Change in Redeemable Non-controlling Interests-->
  <us-gaap:RedeemableNoncontrollingInterestTableTextBlock id="Fact_f6d4d3ac7f1b42909382cd2d342c0073" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The components of the change in the redeemable non-controlling interests for the nine months ended September 30, 2019 are presented in the following table:&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance at January 1, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 58%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Increase in redeemable non-controlling interests due to issuance of common stock&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;27,264&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 58%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Effect of foreign currency translation loss attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;(683&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;26,888&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RedeemableNoncontrollingInterestTableTextBlock>
  <!--Redeemable non-controlling interests (note 14)-->
  <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount id="Fact_a064441f724940f1853a2b87386cc401" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
  <!--Redeemable non-controlling interests (note 14)-->
  <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount id="Fact_cdaab68484c4495a9f4764a8b68c42ba" contextRef="c20190930" unitRef="U002" decimals="-3">26888000</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
  <!--Lease expenses and payable for leasehold improvement due to a related party-Shanghai Zhangjiang Group Co., Ltd. [Member]-->
  <us-gaap:RelatedPartyTransactionAmountsOfTransaction id="Fact_436930ac22624dd28d62033186ee3c5e" contextRef="c20180101to20181231_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember" unitRef="U002" decimals="-3">53000</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
  <!--Lease expenses and payable for leasehold improvement due to a related party-Shanghai Zhangjiang Group Co., Ltd. [Member]-->
  <us-gaap:RelatedPartyTransactionAmountsOfTransaction id="Fact_6e9b00c008b64b2a91c47eb4941d2f26" contextRef="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember" unitRef="U002" decimals="-3">0</us-gaap:RelatedPartyTransactionAmountsOfTransaction>
  <!--Related Party Transactions Disclosure [Text Block]-->
  <us-gaap:RelatedPartyTransactionsDisclosureTextBlock id="Fact_352999ce7d774373a0176ba4d533fe7c" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 11&amp;#8211; RELATED PARTY BALANCES AND TRANSACTIONS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On August 18, 2017, ACM and Ninebell, its equity method investment affiliate (note 10), entered into a loan agreement pursuant to which ACM made an interest-free loan of $946 to Ninebell, payable in 180 days or automatically extended another 180 days if in default. The loan was secured by a pledge of Ninebell&amp;#8217;s accounts receivable due from ACM and all money that Ninebell received from ACM. Ninebell repaid the loan in March 2018.&amp;#160; &lt;font style="color: rgb(0, 0, 0);"&gt;ACM purchased materials from Ninebell amounting to $2,591 and $2,529 during the three months ended September 30, 2019 and 2018, and $7,395 and $5,364 during the nine months ended September 30, 2019 and 2018, respectively.&amp;#160; As of September 30, 2019 and December 31, 2018, accounts payable due to Ninebell were $809 and $1,477, respectively, and prepaid expenses prepaid to Ninebell for material purchases were $160 and $572, respectively.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; color: rgb(0, 0, 0); font-size: 10pt;"&gt;ACM purchased materials from Shengyi amounting to $261 and $453 during the three and nine months ended September 30, 2019, respectively.&amp;#160; As of September 30, 2019, accounts payable due to Shengyi was $496.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In 2007 ACM Shanghai entered into an operating lease agreement with Shanghai Zhangjiang Group Co., Ltd. (&amp;#8220;Zhangjiang Group&amp;#8221;) to lease manufacturing and office space located in Shanghai, China. An affiliate of Zhangjiang Group holds 787,098 shares of Class A common stock that it acquired in September 2017 for $5,903. Pursuant to the lease agreement, Zhangjiang Group provided $771 to ACM Shanghai for leasehold improvements. In September 2016 the lease agreement was amended to modify payment terms and extend the lease through December 31, 2017. From January 1 to April 25, 2018, ACM Shanghai leased the property on a month-to-month basis. On April 26, 2018, ACM Shanghai entered into a renewed lease with Zhangjiang Group for the period from January 1, 2018 through December 31, 2022. Under the lease, ACM Shanghai pays a monthly rental fee of RMB 366 (equivalent to $55). The required security deposit was RMB 1,077 (equivalent to $163). T&lt;font style="color: rgb(0, 0, 0);"&gt;he Company incurred leasing expenses under the lease agreement of $148 and $152 during the three months ended September 30, 2019 and 2018, respectively, and $448 and $471 during the nine months ended September 30, 2019 and 2018, respectively. As of September 30, 2019 and December 31, 2018, payables to Zhangjiang Group for lease expenses and leasehold improvements recorded as other payables and accrued expenses amounted to $0 and $53, respectively (note 7).&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On December 9, 2016, Shengxin (Shanghai) Management Consulting Limited Partnership, a&lt;font style="font-size: 12pt;"&gt;&amp;#160;&lt;/font&gt;PRC limited partnership owned by Jian Wang (Vice President, Research and Development, and brother of David H. Wang) and other employees of ACM Shanghai (&amp;#8220;SMC&amp;#8221;), delivered RMB 20,124 ($2,981 as of the close of business on such date) in cash (the &amp;#8220;SMC Investment&amp;#8221;) to ACM Shanghai for potential investment pursuant to terms to be subsequently negotiated. SMC is a limited partnership incorporated in the PRC, whose partners consist of employees of ACM Shanghai. On March 14, 2017, ACM, ACM Shanghai and SMC entered into a securities purchase agreement (the &amp;#8220;SMC Agreement&amp;#8221;) pursuant to which, in exchange for the SMC Investment, ACM issued to SMC a warrant (the &amp;#8220;SMC Warrant&amp;#8221;) exercisable, for cash or on a cashless basis, to purchase, at any time on or before May 17, 2023, all, but not less than all, of 397,502 shares of Class A common stock at a price of $7.50 per share, for a total exercise price of $2,981. On March 30, 2018, SMC exercised the SMC Warrant in full and purchased 397,502 shares of Class A common stock (note 12).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On August 14, 2019, ACM entered into an equity purchase agreement (the &amp;#8220;Equity Purchase Agreement&amp;#8221;) under which it agreed to repurchase, at a price per share of $13.195 (the net proceeds per share ACM received in a public offering of Class A common stock, as described in note 13), shares of Class A common stock from certain directors, employees and SMC upon the exercise of the underwriters&amp;#8217; over-allotment option in connection with the public offering in August 2019. The total consideration to the directors, employees and SMC, in exchange for their surrender of 214,286 shares of Class A common stock and cancellation of 53,571 options to acquire Class A common stock (note 15) amounted to $3,403, which was based at a price of $13.195 per share equal to the net proceeds per share ACM received from the over-allotment option in connection with this offering. Of that total amount, $1,990 due to SMC was recorded in other payable and accrued expenses (note 7).&lt;/div&gt;&lt;/div&gt;</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
  <!--Purchased materials amount-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_0b53bd2b94ee4f2d9703106bd39a5c69" contextRef="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">453000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Purchased materials amount-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_3b9410746ddf48cbb17e4398af3b4339" contextRef="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">2591000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Purchased materials amount-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_6c1702a5114445c68c055286b467ff18" contextRef="c20180101to20180930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">5364000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Purchased materials amount-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_7b8f0ea130164088945c906ec83e2a52" contextRef="c20180701to20180930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">2529000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Purchased materials amount-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_8039f44c18e14cfa8c00899f43e451de" contextRef="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">261000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Purchased materials amount-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_8871db789f074913beeca514ffdc2d6f" contextRef="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">7395000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Repayments of Short-term Debt-->
  <us-gaap:RepaymentsOfShortTermDebt id="Fact_1aa7c22257184614aadf1d166e7b7ee1" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">11770000</us-gaap:RepaymentsOfShortTermDebt>
  <!--Repayments of Short-term Debt-->
  <us-gaap:RepaymentsOfShortTermDebt id="Fact_3b0d84fb30bd4bbf9b76c8aa64344a40" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">7962000</us-gaap:RepaymentsOfShortTermDebt>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_1602365ba73e43779031d9def22e57d7" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">3492000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_28277476634b40fa84359acbb7d85856" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">2264000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_9e003ee7df3a4c56beaac45f9d9501da" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">6224000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_fd8be7b3f1314a6a9542a04a276a7553" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">9598000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_1a5d675832634867a0560662c436fae4" contextRef="c20181231" unitRef="U002" decimals="-3">0</us-gaap:RestrictedCashCurrent>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_2dce833ef80746948e821729c3b71216" contextRef="c20190930" unitRef="U002" decimals="-3">26582000</us-gaap:RestrictedCashCurrent>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_49f7323dfb59459d9789d1e23cebf1fd" contextRef="c20180930" unitRef="U002" decimals="-3">0</us-gaap:RestrictedCashCurrent>
  <!--Retained Earnings (Accumulated Deficit)-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_b575658061ec4d66b7346690d8603dc6" contextRef="c20190930" unitRef="U002" decimals="-3">11563000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Retained Earnings (Accumulated Deficit)-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_f60d787be8f64119908f7f2fb813627d" contextRef="c20181231" unitRef="U002" decimals="-3">-3387000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_35c40284fbc64fa7a2f401451995467f" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">53795000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_62ddc197fafe4a85aee527062b7aed0d" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">33427000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_749e441f0c0b461a80ed35c0636cb0a6" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">23179000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_b11fb26a52334475a11fe32e41a6e049" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">82916000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_392f6b8663a241ef9777a01f35bf1877" contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.78</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_8386f20fc86244999b5912cb4813ba85" contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">0.91</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_53324b4b4062402f8651b0a2d7b25c08" contextRef="c20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">2.55</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_6c97ff53bc8f45d591e8fce39c8fa639" contextRef="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.82</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested Options Forfeited, Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue id="Fact_17486ae549c94ca28b86a1e890d66f49" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">1.35</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested Options Forfeited, Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue id="Fact_6b63108ad20849748246a5edb69a743b" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.55</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_335adb617a77431fb0d6f5634beacbf3" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember">P7Y3M11D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_53f700961bae4136a700115dbc829f4f" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P6Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_8de5a1a5d64c455c97dcc2148c3a0797" contextRef="c20180101to20181231_AwardTypeAxis_EmployeeStockOptionMember">P7Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_e5859e90e75549ce85a194938d6ccd34" contextRef="c20180101to20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P6Y7M28D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Schedule of Inventory, Current [Table Text Block]-->
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock id="Fact_8f403ba98eb24e358380eb25b7ad9d1a" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, inventory consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Raw&amp;#160;materials&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;14,313&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;12,646&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Work&amp;#160;in&amp;#160;process&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;10,610&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,631&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Finished&amp;#160;goods&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;18,583&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;16,487&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;inventory,&amp;#160;gross&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;43,506&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;38,764&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Inventory&amp;#160;reserve&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&amp;#160;inventory,&amp;#160;net&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;43,506&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;38,764&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <!--Share-based Payment Arrangement, Option, Activity [Table Text Block]-->
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock id="Fact_eefa1f1006404a85b1cda65f56fcff98" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The following table summarizes the Company&amp;#8217;s employee share option activities during the nine months ended September 30, 2019:&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; padding-bottom: 2px; vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Number of&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Option Share&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Average Grant&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Date Fair Value&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Exercise&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Price&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; text-align: center; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="width: 9%; vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Remaining&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding at December 31, 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,503,405&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.91&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4.09&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0); text-indent: 10pt;"&gt;7.30 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;614,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;6.30&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;16.39&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(105,113&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.60&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.08&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(628&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.00&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(41,203&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1.35&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.82&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,970,461&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;6.71&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;7.28 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 44%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Vested and exercisable at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,673,780&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="width: 9%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The following table summarizes the Company&amp;#8217;s non-employee share option activities during the nine months ended September 30, 2019:&lt;/div&gt;&lt;div style="font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 90%; text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Number of&lt;br /&gt; Option Shares&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;br /&gt; Average Grant&lt;br /&gt; Date Fair Value&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted&lt;br /&gt; Average Exercise&lt;br /&gt; Price&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 2px; border-bottom-style: solid;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighted Average&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Remaining&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding&amp;#160;at&amp;#160;December&amp;#160;31,&amp;#160;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,212,374&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.78&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.57&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;6.66 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(88,529&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1.06&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;(22,232&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.55&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3.00&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Outstanding&amp;#160;at&amp;#160;September 30,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,101,613&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.82&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2.69&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: rgb(0, 0, 0);"&gt;6.10 years&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="width: 42%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;September 30,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;959,845&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="width: 9%; text-align: right; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <!--Schedule of Accounts Payable and Accrued Liabilities [Table Text Block]-->
  <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock id="Fact_b10ae72c18854b3ea77dc8b186f76eb1" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, other payable and accrued expenses consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Lease&amp;#160;expenses&amp;#160;and&amp;#160;payable&amp;#160;for&amp;#160;leasehold&amp;#160;improvement&amp;#160;due&amp;#160;to&amp;#160;a&amp;#160;related&amp;#160;party&amp;#160;(note&amp;#160;11)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued commissions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,235&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,931&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;warranty&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,633&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,710&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;payroll&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,743&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;626&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;professional&amp;#160;fees&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;176&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;64&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued&amp;#160;machine&amp;#160;testing&amp;#160;fees&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,333&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,076&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accrued due to a related party (note 11)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,990&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Others&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,860&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,950&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;13,970&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;10,410&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
  <!--Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]-->
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock id="Fact_d80595ab49b1418a948df153284207b7" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Three Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Nine Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Numerator:&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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net&amp;#160;income&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;9,089&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;15,257&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income available to common stockholders, basic and diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;8,782&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;14,950&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,999,746&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,915,864&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,381,944&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,714,310&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Effect&amp;#160;of&amp;#160;dilutive&amp;#160;securities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,354,468&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,253,943&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,317,066&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,101,791&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;19,354,214&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;18,169,807&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;18,699,010&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;17,816,101&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income per common share:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.52&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.91&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.27&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.21&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.80&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
  <!--Schedule of Short-term Debt [Table Text Block]-->
  <us-gaap:ScheduleOfShortTermDebtTextBlock id="Fact_341e2e207b3e4c56b497e6f219e2fc9b" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, short-term borrowings consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on April 17,2019 with an annual interest rate of 4.99%, guaranteed by the Company&amp;#8217;s CEO and fully repaid on March 27, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,133&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on February 14,2019 with an annual interest rate of 5.15%, guaranteed by the Company&amp;#8217;s CEO and fully repaid on February 14, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;485&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on January 23, 2020 with an annual interest rate of 5.22%, guaranteed by the Company&amp;#8217;s CEO and Cleanchip Technologies Limited.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;7,041&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 30,000 from Bank of China Pudong Branch, due on June 6,2019 with annual interest rate of 5.22%,secured by certain of the Company&amp;#8217;s intellectual property and the Company&amp;#8217;s CEO and fully repaid on June 6,2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,186&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 30,000 from Bank of China Pudong Branch, due on June 13,2019 with annual interest rate of 5.22%,secured by certain of the Company&amp;#8217;s intellectual property and the Company&amp;#8217;s CEO and fully repaid on June 13,2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,186&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 10,000 from Shanghai Rural Commercial Bank, due on January 23, 2019 with an annual interest rate of 5.44%, guaranteed by the Company&amp;#8217;s CEO and pledged by accounts receivable,and fully repaid on January 23, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,457&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Shanghai Rural Commercial Bank, due on February 21, 2020 with an annual interest rate of 5.66%, guaranteed by the Company&amp;#8217;s CEO and pledged by accounts receivable.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,414&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on January 18, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,414&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on January 22, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;707&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on February 14, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;707&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on March 25, 2020 with an annual interest rate of 4.94%, guaranteed by the Company&amp;#8217;s CEO.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,252&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on April 17, 2020 with an annual interest rate of 5.66%, guaranteed by the Company&amp;#8217;s CEO.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,130&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;15,665&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,447&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShortTermDebtTextBlock>
  <!--Accounts Receivable-->
  <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock id="Fact_92c7deb0fc5f4703910db7b0bd748a43" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, accounts receivable consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 50%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 26%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 26%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Accounts&amp;#160;receivable&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;43,144&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;24,608&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 26%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Less:&amp;#160;Allowance&amp;#160;for&amp;#160;doubtful&amp;#160;accounts&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(255, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 26%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;43,144&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;24,608&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
  <!--Security deposit amount-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SecurityDeposit id="Fact_cb181dd2be484662970f43cee383f3fb" contextRef="c20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">163000</us-gaap:SecurityDeposit>
  <!--Security deposit amount-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SecurityDeposit id="Fact_e1eeac45321f448e92fde415f5385571" contextRef="c20180426_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U005" decimals="-3">1077000</us-gaap:SecurityDeposit>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_1c01bd83a11549ca93eb1f20734d424c" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">7766000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_4c979dfc542e4b6cbc8a6288046ee142" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">3886000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_6e7d51028d28478f96af9249ce1388b1" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">3229000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_db820d43eb5848fa8674c6f3f2ed6b34" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">8679000</us-gaap:SellingAndMarketingExpense>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice id="Fact_0eee2b514a4c40adba83ddc47fac1cfd" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">2.08</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice id="Fact_8cbdaf9b6bc249a3ad4c8700fda52d2d" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">1.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice id="Fact_52a17ef6f2ce487dbaccff24de9048a2" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice id="Fact_7fa7c4e6cb644988923d0c770ae3d6cc" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">16.39</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice id="Fact_05622dc1e89a4ce0854b884fbaa6524a" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice id="Fact_830dc662fb79480385cbecce939964dc" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">3.00</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
  <!--Share-based Payment Arrangement, Noncash Expense-->
  <us-gaap:ShareBasedCompensation id="Fact_0b5777a967a54834b5f902bb9c187f9c" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2919000</us-gaap:ShareBasedCompensation>
  <!--Share-based Payment Arrangement, Noncash Expense-->
  <us-gaap:ShareBasedCompensation id="Fact_a68d8a547db64ae088e94c6e501763cd" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">2771000</us-gaap:ShareBasedCompensation>
  <!--Stock price (in dollars per share)-Common Class A [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:SharePrice id="Fact_4e2f2d206a2c442e9d0fd12e7ef4d0be" contextRef="c20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="3">13.195</us-gaap:SharePrice>
  <!--Stock price (in dollars per share)-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:SharePrice id="Fact_c6025073c1c14e35af5bfeee3647f9d1" contextRef="c20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U003" decimals="INF">7.50</us-gaap:SharePrice>
  <!--Stock price (in dollars per share)-Common Class A [Member]-->
  <us-gaap:SharePrice id="Fact_35f808fce37242a8b643687c4f34728b" contextRef="c20190831_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="INF">14.00</us-gaap:SharePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross id="Fact_25e6eab106d84ef195a42d9a0cc70a90" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">614000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross id="Fact_725132e1f29045d2b420bb2b6ce25d60" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross id="Fact_a7942bea2fa64494993898b42c928ae8" contextRef="c20190701to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">319000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice id="Fact_61921aeb698641ef86ff6fe0082eaa83" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">3.82</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice id="Fact_e71be5449a054969b80de4127cf9e8eb" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">3.00</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue id="Fact_6726973fb5fc4057a36ae50223225e32" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">6.30</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue id="Fact_6c06bd46e4ba4aaf9438b425d5642c50" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber id="Fact_7698b43909de4e1e8d6e6eb745cc36bc" contextRef="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">959845</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber id="Fact_f84cb3c385e246368db1b21325e56580" contextRef="c20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">1673780</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod id="Fact_d3e9bd0a5d1d47dc9615f5999d2bac7f" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">628</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod id="Fact_e99d60e238124041b91454b774bde4fc" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Common Class A [Member]-Director [Member]-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_0bfb9d00255c44bcbf0d0ec042d3aa5c" contextRef="c20190701to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember_TitleOfIndividualAxis_DirectorMember" unitRef="U001" decimals="INF">22232</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Director [Member]-Common Class A [Member]-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_3d70895dffd84d10bddd0a9190c77e59" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember_TitleOfIndividualAxis_DirectorMember" unitRef="U001" decimals="INF">22232</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Share-based Payment Arrangement, Option [Member]-Common Class A [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_8ad9751ac1c542beb19684bf499342d3" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">31339</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_a55aa173915746bf9956581902043586" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">41203</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_e92e824fcf1d46dcb760f60089f3afa7" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">22232</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Common Class A [Member]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_f8c802d259b640409b7c119bca22b74a" contextRef="c20190701to20190930_AwardTypeAxis_EmployeeStockOptionMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">31339</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_1fa43a6b1c924728820e266253a77399" contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">1212374</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_6522eed98bc5490d938bf3758b96f3b2" contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">2503405</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_558d62e1f4b343639543da36fb345f32" contextRef="c20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">2970461</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_64548b3172484874bb0866c6a4546397" contextRef="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">1101613</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_15f5fe14e0a9441b96c9fe817281ee37" contextRef="c20181231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">4.09</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_d39cf91a56574c38ada713c1fcc2cea3" contextRef="c20181231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">2.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_c3e37cffa8944b91a58c1b8d6de01e3a" contextRef="c20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">6.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_cb32312a86ce46c1918e50adacdf0549" contextRef="c20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">2.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Shares, Issued-Common Class A [Member]-Ninebell Company Limited [Member]-->
  <us-gaap:SharesIssued id="Fact_da0cb874e8b84c5bb0f35f93f5937571" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">133334</us-gaap:SharesIssued>
  <!--Shares, Outstanding-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_0049044ef71b48839f5fadc7b04bf1ef" contextRef="c20190630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">14229942</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_06dbbb2c959b41058b0ca51112b40aab" contextRef="c20180630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1920173</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:SharesOutstanding id="Fact_4ca6834e1e4148e3b7518d4d7cf24939" contextRef="c20171231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">12935546</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_577f14ab7bf244bc9552eae19fb95170" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">14110315</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_5b7a2bc185b74cbbb0c8388cb973f3a6" contextRef="c20190630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1883423</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:SharesOutstanding id="Fact_b3d4fa94c3cc40378970f571480c9ecb" contextRef="c20180630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">13957339</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_c923a30af6034e5a88c6793416d5404f" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1898423</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_f92c241c2880416abb4501a5896eb65b" contextRef="c20171231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">2409738</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_4ffbce7d30a9476e8b87fe35e5569f7c" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1862608</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_a07e49c7e22246de8685d8f9c15219c7" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">16179058</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_b98b8cbd51564dbcad10060e8fb0d8b0" contextRef="c20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1918423</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_f87704f43c854eadaec1a886bdc28e13" contextRef="c20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">14070065</us-gaap:SharesOutstanding>
  <!--Share price (in dollars per share)-Common Class A [Member]-Ninebell Company Limited [Member]-->
  <us-gaap:SharesIssuedPricePerShare id="Fact_2a64c84d190c4ab7969c47e71acb2b03" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="2">7.50</us-gaap:SharesIssuedPricePerShare>
  <!--Short-term lease cost-->
  <us-gaap:ShortTermLeaseCost id="Fact_51f40290e41045939b61858d556e6008" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">117000</us-gaap:ShortTermLeaseCost>
  <!--Short-term lease cost-->
  <us-gaap:ShortTermLeaseCost id="Fact_fbc479cd40da44128338cb7f214f9fb4" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">92000</us-gaap:ShortTermLeaseCost>
  <!--Short-term Debt [Text Block]-->
  <us-gaap:ShortTermDebtTextBlock id="Fact_226ba29e46fa4140b562083f2bd62118" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 6 &amp;#8211; SHORT-TERM BORROWINGS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;At September 30, 2019 and December 31, 2018, short-term borrowings consisted of the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;/div&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on April 17,2019 with an annual interest rate of 4.99%, guaranteed by the Company&amp;#8217;s CEO and fully repaid on March 27, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,133&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on February 14,2019 with an annual interest rate of 5.15%, guaranteed by the Company&amp;#8217;s CEO and fully repaid on February 14, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;485&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from Bank of Shanghai Pudong Branch, due on January 23, 2020 with an annual interest rate of 5.22%, guaranteed by the Company&amp;#8217;s CEO and Cleanchip Technologies Limited.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;7,041&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 30,000 from Bank of China Pudong Branch, due on June 6,2019 with annual interest rate of 5.22%,secured by certain of the Company&amp;#8217;s intellectual property and the Company&amp;#8217;s CEO and fully repaid on June 6,2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,186&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 30,000 from Bank of China Pudong Branch, due on June 13,2019 with annual interest rate of 5.22%,secured by certain of the Company&amp;#8217;s intellectual property and the Company&amp;#8217;s CEO and fully repaid on June 13,2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,186&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 10,000 from Shanghai Rural Commercial Bank, due on January 23, 2019 with an annual interest rate of 5.44%, guaranteed by the Company&amp;#8217;s CEO and pledged by accounts receivable,and fully repaid on January 23, 2019.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,457&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Shanghai Rural Commercial Bank, due on February 21, 2020 with an annual interest rate of 5.66%, guaranteed by the Company&amp;#8217;s CEO and pledged by accounts receivable.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,414&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on January 18, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,414&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on January 22, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;707&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 20,000 from Bank of Communications, due on February 14, 2020 with an annual interest rate of 5.66%.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;707&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on March 25, 2020 with an annual interest rate of 4.94%, guaranteed by the Company&amp;#8217;s CEO.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,252&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on April 17, 2020 with an annual interest rate of 5.66%, guaranteed by the Company&amp;#8217;s CEO.&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,130&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;15,665&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;9,447&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; color: rgb(0, 0, 0); font-size: 10pt;"&gt;Interest expense related to short-term borrowings amounted to $205 and $112 for the three months ended September 30, 2019 and 2018, respectively, and $538 and $364 for the nine months ended September 30, 2019 and 2018, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:ShortTermDebtTextBlock>
  <!--Short-term borrowings (note 6)-->
  <us-gaap:ShortTermBorrowings id="Fact_10d220258d4c4a88bcb4d1160a4de8f0" contextRef="c20181231" unitRef="U002" decimals="-3">9447000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-->
  <us-gaap:ShortTermBorrowings id="Fact_983cb7f4eafd4354bb0037e8cce750b4" contextRef="c20190930" unitRef="U002" decimals="-3">15665000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 12 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_020be9f254f4459eb6a070885746f016" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit12Member" unitRef="U002" decimals="-3">1130000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 7 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_03ab83a77a3b4132ad7540fd2908a49a" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U002" decimals="-3">1414000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 6 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_2489aa149f984ea481b43d07812ae1c9" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U002" decimals="-3">1457000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 8 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_2bbdda47b9af45f3961b3a86d1eec4e9" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 1 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_2e0b59aca83b4be29458365be8ba038e" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U002" decimals="-3">3133000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 4 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_3010912f5a1e42fe8750fd5836bd8186" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 11 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_34668944ffb54d7d967bfe3e5ac179bc" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit11Member" unitRef="U002" decimals="-3">3252000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 7 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_51eefcd992144e89b56a56197f9ebbcf" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 3 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_6870088696bb4347af8bc05ef76139d6" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 10 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_6d8d00cecc0c4ff3bd78169d9b41910b" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit10Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 9 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_81c64f863f164392bb3b006618821383" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U002" decimals="-3">707000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 3 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_87ac02693602489297e02bd98e8e6a40" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U002" decimals="-3">7041000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 8 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_b73d1b4902634b47b7892ae698767657" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U002" decimals="-3">1414000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 5 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_ba58f5af52db40f2bb972a3552bd1d9a" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U002" decimals="-3">2186000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 12 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_bef4aa4f97d54c8f93a755748fe228d2" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit12Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 2 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_c65c5e9015b147ce9d2358c0e4040579" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U002" decimals="-3">485000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 4 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_d44ca35691284100890263c9425dc1d8" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U002" decimals="-3">2186000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 11 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_d8a00ed833684d40b01868a0575b3d8d" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit11Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 9 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_e64e8a0b542e49799c2c05c4b6590b9a" contextRef="c20181231_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 2 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_e7e2be62133044f5848c8533044fcece" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 10 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_eab21ff01c86492e91f281a040d54133" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit10Member" unitRef="U002" decimals="-3">707000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 1 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_f01f999b310845e39dadc5adebf61e5a" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 5 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_f4a852f822d24a16ad887a410233535c" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 6 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_f52562aeefa940908a6a94edfe200aca" contextRef="c20190930_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Significant Accounting Policies [Text Block]-->
  <us-gaap:SignificantAccountingPoliciesTextBlock id="Fact_f9944b1c5ba64520be1fcd4b4b3be0c4" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt; font-weight: bold;"&gt;NOTE 2 &amp;#8211; SIGNIFICANT ACCOUNTING POLICIES&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Basis of Presentation and Principles of Consolidation&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The consolidated accounts include ACM and its subsidiaries ACM Shanghai, ACM Wuxi, CleanChip, ACM Korea, ACM Research (CA), Inc. and Shengwei Research (Shanghai), Inc.&amp;#160; Subsidiaries are those entities in which ACM, directly and indirectly, controls more than one half of the voting power. All significant intercompany transactions and balances have been eliminated upon consolidation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The accompanying condensed consolidated financial statements of the Company have been prepared in accordance with accounting principles generally accepted in the United States of America (&amp;#8220;GAAP&amp;#8221;) for interim financial information and the rules and regulations of the SEC for reporting on Form 10-Q. Accordingly, they do not include all the information and footnotes required by GAAP for complete financial statements herein. The unaudited condensed consolidated financial statements herein should be read in conjunction with the historical consolidated financial statements of the Company for the year ended December 31, 2018 included in ACM&amp;#8217;s Annual Report on Form 10-K for the year ended December 31, 2018.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The accompanying condensed consolidated balance sheet as of September 30, 2019, the condensed consolidated statements of operations and comprehensive income for the three and nine months ended September 30, 2019 and 2018, the condensed consolidated statements of changes in stockholders&amp;#8217; equity for the three and nine months ended September 30, 2019 and 2018, and the condensed consolidated statements of cash flows for the nine months ended September 30, 2019 and 2018 are unaudited. In the opinion of management, the unaudited condensed consolidated financial statements of the Company reflect all adjustments that are necessary for a fair presentation of the Company&amp;#8217;s financial position and results of operations. Such adjustments are of a normal recurring nature, unless otherwise noted. The balance sheet as of September 30, 2019 and the results of operations for the three and nine months ended September 30, 2019 are not necessarily indicative of the results to be expected for any future period.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Use of Estimates&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The preparation of condensed consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the balance sheet date and the reported revenue and expenses during the reported period in the condensed consolidated financial statements and accompanying notes. The Company&amp;#8217;s significant accounting estimates and assumptions include, but are not limited to, those used for the valuation and recognition of stock-based compensation arrangements and warrant liability, realization of deferred tax assets, assessment for impairment of long-lived assets, allowance for doubtful accounts, inventory valuation for excess and obsolete inventories, lower of cost and market value or net realizable value of inventories, depreciable lives of property and equipment, and useful life of intangible assets. Management of the Company believes that the estimates, judgments and assumptions are reasonable, based on information available at the time they are made. Actual results could differ materially from those estimates.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Basic and Diluted Net Income per Common Share&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Three Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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="6" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Nine Months Ended September 30,&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: middle;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Numerator:&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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" 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" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net&amp;#160;income&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;9,089&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(204, 238, 255);"&gt;&lt;div&gt;15,257&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income available to common stockholders, basic and diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;8,782&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;3,853&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;14,950&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;4,288&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,999,746&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,915,864&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;16,381,944&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;15,714,310&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Effect&amp;#160;of&amp;#160;dilutive&amp;#160;securities&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,354,468&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,253,943&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;2,317,066&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,101,791&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Weighted&amp;#160;average&amp;#160;shares&amp;#160;outstanding,&amp;#160;diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;19,354,214&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;18,169,807&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;18,699,010&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;17,816,101&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income per common share:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&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: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Basic&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.52&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;0.91&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.27&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 52%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt; color: rgb(0, 0, 0);"&gt;Diluted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.21&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&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: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;0.80&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;0.24&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM has been authorized to issue Class A and Class B common stock since redomesticating in Delaware in November 2016. The two classes of common stock are substantially identical in all material respects, except for voting rights. Since ACM did not declare any dividends during the three and nine months ended September 30, 2019 and 2018, the net income per common share attributable to each class is the same under the &amp;#8220;two-class&amp;#8221; method. As such, the two classes of common stock have been presented on a combined basis in the condensed consolidated statements of operations and comprehensive income and in the above computation of net income per common share.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Diluted net income per common share reflects the potential dilution from securities that could share in ACM&amp;#8217;s earnings. ACM&amp;#8217;s potential dilutive securities consist warrants and stock options for the three and nine months ended September 30, 2019 and 2018. &lt;font style="color: rgb(0, 0, 0);"&gt;Certain potential dilutive securities were excluded from the net income per share calculation because the impact would be anti-dilutive.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Recent Accounting Pronouncements&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In February 2016, the Financial Accounting Standards Board (&amp;#8220;FASB&amp;#8221;) issued Accounting Standards Update (&amp;#8220;ASU&amp;#8221;) 2016-02, &lt;font style="font-style: italic;"&gt;Leases (Topic 842)&lt;/font&gt;. The amendments in &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2016-02&lt;/font&gt; create Topic 842, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;, and supersede the leases requirements in Topic 840, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;. Topic 842 specifies the accounting for leases. The objective of Topic 842 is to establish the principles that lessees and lessors shall apply to report useful information to users of financial statements about the amount, timing, and uncertainty of cash flows arising from a lease. The main difference between Topic 842 and Topic 840 is the recognition of lease assets and lease liabilities for those leases classified as operating leases under Topic 840. Topic 842 retains a distinction between finance leases and operating leases. The classification criteria for distinguishing between finance leases and operating leases are substantially similar to the classification criteria for distinguishing between capital leases and operating leases in the previous lease guidance. The result of retaining a distinction between finance leases and operating leases is that under the lessee accounting model in Topic 842, the effect of leases in the statement of comprehensive income and the statement of cash flows is largely unchanged from previous GAAP.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Effective January 1, 2019, the Company adopted ASU 2016-02.&amp;#160; The original guidance required application on a modified retrospective basis with the earliest period presented.&amp;#160; In August 2018, the FASB issued ASU 2018-11, &lt;font style="font-style: italic;"&gt;Targeted Improvements to ASC 842&lt;/font&gt;, &lt;font style="font-style: italic;"&gt;Leases&lt;/font&gt;, which included an option to not restate comparative periods in transition and elect to use the effective date of Accounting Standards Codification (&amp;#8220;ASC&amp;#8221;) 842&lt;font style="font-style: italic;"&gt;&amp;#160;&lt;/font&gt;as the date of initial application of transition, which the Company elected.&amp;#160; As a result of its adoption of ASC 842 as of January 1, 2019, the Company recorded operating lease right-of-use assets of $5,109 and lease liabilities of $5,109.&amp;#160; The adoption of ASC 842 had no impact on the Company&amp;#8217;s profit or cash flows for the three and nine months ended September 30, 2019.&amp;#160; In addition, the Company elected the package of practical expedients permitted under the transition guidance within the new standard, which allowed the Company to carry forward the historical lease classification. Additional information and disclosures required by this new standard are contained in note 8.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2018, the FASB issued ASU 2018-07, &lt;font style="font-style: italic;"&gt;Compensation&amp;#8212;Stock Compensation (Topic 718)&amp;#8212;Improvements to Nonemployee Share-Based Payment Accounting&lt;/font&gt;, which simplifies several aspects of the accounting for nonemployee share-based payment transactions resulting from expanding the scope of Topic 718, &lt;font style="font-style: italic;"&gt;Compensation&amp;#8212;Stock Compensation&lt;/font&gt;, to include share-based payment transactions for acquiring goods and services from nonemployees. Some of the areas for simplification apply only to nonpublic entities. ASU 2018-07 specifies that Topic 718 applies to all share-based payment transactions in which a grantor acquires goods or services to be used or consumed in a grantor&amp;#8217;s own operations by issuing share-based payment awards. ASU 2018-07 also clarifies that Topic 718 does not apply to share-based payments used to effectively provide (1) financing to the issuer or (2) awards granted in conjunction with selling goods or services to customers as part of a contract accounted for under the new revenue recognition standard set forth in ASU 2014-09, &lt;font style="font-style: italic;"&gt;Revenue from Contracts with Customers (Topic 606)&lt;/font&gt;. Effective January 1, 2019, the Company adopted ASU 2018-07, which did not have a material impact on the Company&amp;#8217;s consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In August 2018, the FASB issued ASU 2018-13,&lt;font style="font-style: italic;"&gt; Fair Value Measurement (Topic 820)&lt;/font&gt;, which eliminates, adds and modifies certain disclosure requirements for fair value measurements. The modified standard eliminates the requirement to disclose changes in unrealized gains and losses included in earnings for recurring Level 3 fair value measurements and requires changes in unrealized gains and losses be included in other comprehensive income for recurring Level 3 fair value measurements of instruments. The standard also requires the disclosure of the range and weighted average used to develop significant unobservable inputs and how weighted average is calculate for recurring and nonrecurring Level 3 fair value measurements. The amendment is effective for fiscal years beginning after December 15, 2019 and interim periods within that fiscal year, with early adoption permitted. The Company is evaluating the impact of the adoption of ASU 2018-13 on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In January 2017, the FASB issued ASU 2017-04, &lt;font style="font-style: italic;"&gt;Intangibles&amp;#8212;Goodwill and Other (Topic 350): Simplifying the Test for Goodwill Impairment&lt;/font&gt;, which removes Step 2 from the goodwill impairment test. An entity will apply a one-step quantitative test and record the amount of goodwill impairment as the excess of a reporting unit&amp;#8217;s carrying amount over its fair value, not to exceed the total amount of goodwill allocated to the reporting unit. &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2017-04&lt;/font&gt; does not amend the optional qualitative assessment of goodwill impairment. A business entity that files periodic reports with the Securities and Exchange Commission must adopt the amendments in &lt;font style="color: rgb(0, 0, 0);"&gt;ASU 2017-04&lt;/font&gt; for its annual or any interim goodwill impairment test in fiscal years beginning after December 15, 2019. Early adoption is permitted for interim or annual goodwill impairment tests performed on testing dates after January 1, 2017. The Company is evaluating the impact of the adoption of ASU 2017-04 on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In June 2016, the FASB issued ASU 2016-13, &lt;font style="font-style: italic;"&gt;Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&lt;/font&gt;. ASU 2016-13 replaced the incurred loss impairment methodology under current GAAP with a methodology that reflects expected credit losses and requires consideration of a broader range of reasonable and supportable information to inform credit loss estimates. ASU 2016-13 requires use of a forward-looking expected credit loss model for accounts receivables, loans, and other financial instruments. ASU 2016-13 is effective for fiscal years beginning after December 15, 2019, with early adoption permitted. Adoption of the standard requires using a modified retrospective approach through a cumulative-effect adjustment to retained earnings as of the effective date to align existing credit loss methodology with the new standard. The Company will adopt ASU 2016-13 effective January 1, 2020. The Company is evaluating the impact of this standard on its consolidated financial statements, including accounting policies, processes, and systems, but does not expect the standard will have a material impact on its consolidated financial statements.&lt;/div&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
  <!--Convertible shares in to Class A common stock (in shares)-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits id="Fact_945285b7a90247e280cd862b7ddfe3e5" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_6b8eb2ddb64748ed9152022c205ca11f" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_7d2ca4d0e23142f09da8cdc73646605f" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_994bf2635a4349b98db93d0977d989b7" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_bdaa252ffc21417db424a87ba9ceffa7" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">576000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_2ffad39c69da43ea897507540d487092" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_d74e06c38e434b45b50ddadeba62e3bd" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_57f028d97abe4238bf4d7909aa3618a3" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_8ae8fe122bda4d86b9759e7032282e63" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_1cf873bf29474ab2b302426caab74914" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_b0f3a98d65dc40be932fe0cb6a584a12" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_076d15daeba641ec8c635d8f7984c199" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_e81f65d423554550ae1f8c1bf32ef3ed" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Shares Issued, Value, Share-based Payment Arrangement, Forfeited-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited id="Fact_edda5069972e48b4b414506061195f2e" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">3403000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationForfeited>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_1dea355510d44d8dabd83a3e23ebb0f5" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">245702</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_210a905e0ecd4e6689f74757fd2aa283" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_376027f7e0dd429b9265d76c49eeeb02" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_4004bbf9816a441082241b8a6e8c40de" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">89015</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_9895aa81888a4f11b4ce54748582a7d4" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_c538e2db22c64f889e60db925d73cfe7" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">110976</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_e1d7a53a42054c4dad59fdab4c08206e" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_fed487809b8644fea96718c92cbccd29" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">193642</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_096723b2d6f34e819e42d20aed1d7ed2" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">105113</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_a6ffd55764824576ae18b5f4423a4009" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">88529</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, Forfeited-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited id="Fact_3d8e26cf106847ebb5565595ef725882" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, Forfeited-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited id="Fact_cb1967f34c294537b161c7f8e4ee94c8" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, Forfeited-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited id="Fact_19b7cc32267741fe8e880901a36c268e" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, Forfeited-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited id="Fact_f0fc46402f8042ec96de2c35cc1fca13" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, Forfeited-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited id="Fact_94188bc033174f1d89f5c438e0da24d8" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">53571</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationForfeited>
  <!--Shares issued (in shares)-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_1809b008f95844f8956055b9defc4203" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_2ff476931cf64cbfa557eb30b0208c6c" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_6fa64801921d4699866efadcacf93d12" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">2053572</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_fceb73007794418a8b2a67198e3b6493" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">2053572</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_0e2efcd176164c38bd0fe21f94a17916" contextRef="c20170314to20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">397502</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Common Class A [Member]-Shanghai Zhangjiang Group Co., Ltd. [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_2e315dd72804443da45448614c8fac90" contextRef="c20170930to20170930_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">787098</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Shares issued (in shares)-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_08f89a36792a4aabb81d0fcc3860e330" contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">2053572</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_146d60339456439f8ae13249a129ae3f" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">512000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_1c8d0310bf434eb18e0a7ca0219b5ec2" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_1f6ffe99307a4f7d8aa7b128cfea7992" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_20eb4f4cd6c3400f8bc5be13299521e2" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">217000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_2edd64011fd84b12b5586d687ba31ccd" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_3060c64a98b04dcf8da6701130741b60" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_54f11e3d7177465f93c025e25b99a2a1" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">512000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_57d15b73e1274541bfbe8c3fb69d35e8" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">312000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_5aaf3456ff02410e8b5688dd4231cfba" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_68fcdf78ed9540adbe0d1ad977b37aa9" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">217000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_6c8051c191ec478ba9f199b5fbdf217a" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_85d1211c9438441f9c93615390703734" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_940c8885aac24d5fae7d08effa53284d" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">140000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_a86a87c6df3240c989f6b23dc9a0fdea" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">312000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_b87d60a38e40477ba7d6dc13f6e63788" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_b9a615711a144db69a094f2e02df7a1a" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_bde76d5ff1b147f09254282cb692a340" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_bf624672dcfe496db1ce11a1716933ba" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_c4c238ab96f648ca8f415a019aae38ac" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_db7a6dfb5a1f4328b174dfaed6127980" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_f00d77d8333b491d853a11041f02f593" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_f35fb9f7a03e4ea19ef5e2b687e19aad" contextRef="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_f521a99bf0154049b61e9d7962525633" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">140000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_f711ec961dd844b298cff5b4fb56967a" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, New Issues-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_02d858ec5cf34032be896f60701969dd" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_074075b0fb4b480f932e529bf23fb60b" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">26462000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_16c3d85ad2b04c328867b9942e8ec348" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">26463000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_3f4e47fe93fb4c218a05b8d7ae64ba3d" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_471c32f68e064c139ed641a58f185533" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">26462000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_718347ec3bfa40c4a9235fbe29854170" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_90989e3ab6e4409280296a7fb3fcc796" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_91f07f4340d54ecd8d5d21c83f6bf5db" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_9f721f56af7e4e529cbb5e5b298e8e3c" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_a812e322cce648f58f33a3b4d60f92f0" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_dcd729c8481b454e8970cccf2b0067d7" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_ea0e3269e40d4c70bcaeb78d096c4644" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">26463000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Common Class A [Member]-Shanghai Zhangjiang Group Co., Ltd. [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_288778af11b94057a655e67291843aa5" contextRef="c20170930to20170930_RelatedPartyTransactionsByRelatedPartyAxis_ShanghaiZhangjiangGroupCoLtdMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">5903000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Issued During Period, Value, New Issues-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_700558b10d5946b0bb03534caf2530e0" contextRef="c20170314to20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2981000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Stock Repurchased During Period, Shares-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_0bf458374d4d488d9177a156f22ea2a2" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">214286</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stock Repurchased During Period, Shares-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_83dac615a70544f2af6d89a288981ab4" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">214286</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stock Repurchased During Period, Shares-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_783efa7e3c5347448f26c7cb3a514d5d" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stock Repurchased During Period, Shares-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_0179307de5f64b3cb529ce54608e9114" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stock Repurchased During Period, Shares-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_731bdfed0ed8496c8a9983b6b6e81f5f" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">214286</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stock Repurchased During Period, Value-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_5b28543b5e2f4a48b1a4b4ef17df765c" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_0a604d530b8b44b8a96e89f2acf43c3c" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_ec96dce307a84aa6a952752d10e0ae83" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_8081546fa1394a8cb52a67b925c97735" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_c71a064235f64c258dc1b150303e2e84" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_8cdb5ed6c6dc49ce8c731e79bfc25ac7" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Additional Paid-In Capital [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_b7dbe2015d3f4afb93f0d7fe0cbdf432" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_d3fe5e20cbcd437c8e446a6c8171a555" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Additional Paid-In Capital [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_fa84ffaa1b3a4caa8454ec25372f3a9a" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">2827000</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_cfd724c54563489fb5c346a0a038d1c8" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_937f2c0024f94723986bc6c55ae9b684" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stock Repurchased During Period, Value-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodValue id="Fact_756b8f54dcb946188987e3f837db2f53" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockRepurchasedDuringPeriodValue>
  <!--Stockholders' Equity Note Disclosure [Text Block]-->
  <us-gaap:StockholdersEquityNoteDisclosureTextBlock id="Fact_080e4a79a9d3475db8e9137befa6b1be" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt; font-weight: bold;"&gt;NOTE 13 &amp;#8211; COMMON STOCK&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;ACM is authorized to issue 50,000,000 shares of Class A common stock and 2,409,738 shares of Class B common stock, each with a par value of $0.0001. Each share of Class A common stock is entitled to one vote, and each share of Class B common stock is entitled to twenty votes and is convertible at any time into one share of Class A common stock. Shares of Class A common stock and Class B common stock are treated equally, identically and ratably with respect to any dividends declared by the Board of Directors unless the Board of Directors declares different dividends to the Class A common stock and Class B common stock by getting approval from a majority of common stockholders.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On March 30, 2018, SMC exercised the SMC Warrant in full (note 12) to purchase 397,502 shares of Class A common stock.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;During the nine months ended September 30, 2019, ACM issued 193,642 shares of Class A common stock upon option exercises by employees and non-employees and an additional 35,815 shares of Class A common stock upon conversion of an equal number of shares of Class B common stock.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In August 2019, ACM sold a total of 2,053,572 shares of Class A common stock to the public at a price of $14.00 per share for aggregate gross proceeds of $28,750. Net proceeds to ACM excluded an underwriting discount and offering expenses totaling $2,287. As mentioned in note 11, the shares repurchased from certain directors, employees and SMC upon the exercise of the underwriters&amp;#8217; over-allotment option in connection with the offering was for the purpose of share constructive retirement. A total of&amp;#160; 214,286 repurchased shares were accounted for share retirement during the three and nine months ended September 30, 2019.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;There were issued and outstanding 16,179,058 shares of Class A common stock and 1,862,608 shares of Class B common stock at September 30, 2019 and 14,110,315 shares of Class A common stock and 1,898,423 shares of Class B common stock at December 31, 2018.&lt;/div&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_27036a927d604cb3a67a0f69c193a693" contextRef="c20190930" unitRef="U002" decimals="-3">91345000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_bc3e291697cb4424acb998444b4b1fa2" contextRef="c20181231" unitRef="U002" decimals="-3">52324000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_06736e881a79419faf640a5c64ca8957" contextRef="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-857000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_09732a638d604a4a9b4454f943da1511" contextRef="c20171231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_0acb3e7812b2444cb2e38e92c60e6f09" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_1b005f728518413ebf0aa107f184c68f" contextRef="c20180630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">55331000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_1e7a382b17e14605a1348602adeecf19" contextRef="c20180630" unitRef="U002" decimals="-3">45597000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_226ceafc62c4477090c05ffb70c0171c" contextRef="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">56567000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockholdersEquity id="Fact_26250a5a1509459cb9b193f89c882284" contextRef="c20180630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_376f5e11a428425cb568226aeaa18ba9" contextRef="c20190630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-1168000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_4aed16f5b8cd4e69b9a9027a3186733e" contextRef="c20190630" unitRef="U002" decimals="-3">59715000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockholdersEquity id="Fact_4ed7e8c9bdc54157b7eabbaaca3aac24" contextRef="c20171231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_64a44e167191403aab949daf030a1bcf" contextRef="c20171231" unitRef="U002" decimals="-3">39857000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_67db4c6a8d6f4daca490aeccf9206488" contextRef="c20171231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-9961000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_73b621c28c9e414e956104c1e97933b1" contextRef="c20190630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">2781000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_792d9e154a6149e79baccaf23d9dbeb4" contextRef="c20190630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockholdersEquity id="Fact_7a97f96a29da45f5a89b7d40d70d3d36" contextRef="c20180630_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_8274eb8eb9cb430184f89823b0fc294e" contextRef="c20180630_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-9526000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_87d9d2fc14a94f74a2285b2bddecd7f3" contextRef="c20190630_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">58101000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_8919f55449b44e9185b77b1229671647" contextRef="c20171231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">49695000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_a824218cc37c4dad8a1ac13ade04529c" contextRef="c20180630_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-209000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_be42262d7bd841bfa61e79da07243300" contextRef="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-3387000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockholdersEquity id="Fact_c047d91154624cd196b1a3f2eaebecce" contextRef="c20190630_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_c463043cb6c548d2945f4f951033af7f" contextRef="c20171231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">122000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_cd67c59f031f4fdcbc384968d350a991" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_123c2138559d44f987683a9358ac26c8" contextRef="c20180930" unitRef="U002" decimals="-3">49332000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockholdersEquity id="Fact_15f01712fd714adc9d28f28d6f59023c" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_27a51d8b76704ace81009d4241ed7b02" contextRef="c20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-3077000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_2a8677d924c744b6b631c4101d88f3b6" contextRef="c20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">11563000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockholdersEquity id="Fact_55a1738406874c5c9d3f48011f276cd1" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">2000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockholdersEquity id="Fact_61c3609496ff4c7da5eaefc05ec743d8" contextRef="c20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_7185e40b77b44ad9a2b3d83faadbb429" contextRef="c20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">82857000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_7c202af949f3465795c1b7190fb109c2" contextRef="c20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-955000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockholdersEquity id="Fact_99f84c7e07064d8585d79550a6e2ae29" contextRef="c20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_9a3707aac1254df29e3bd1b4c557edda" contextRef="c20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">55959000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Surplus (Deficit) [Member]-->
  <us-gaap:StockholdersEquity id="Fact_dc798b168f2a42deaba8962426812bab" contextRef="c20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-5673000</us-gaap:StockholdersEquity>
  <!--Reverse stock split-Common Class A [Member]-->
  <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1 id="Fact_03925c51516a45fa92a11b19f8efc747" contextRef="c20170913to20170913_StatementClassOfStockAxis_CommonClassAMember" unitRef="U004" decimals="2">0.33</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
  <!--Reverse stock split-Common Class B [Member]-->
  <us-gaap:StockholdersEquityNoteStockSplitConversionRatio1 id="Fact_4cb1ab86a5e54d3b8f114f3f40ae3bca" contextRef="c20170913to20170913_StatementClassOfStockAxis_CommonClassBMember" unitRef="U004" decimals="2">0.33</us-gaap:StockholdersEquityNoteStockSplitConversionRatio1>
  <!--Unrecognized tax benefits-->
  <us-gaap:UnrecognizedTaxBenefits id="Fact_2cbd5f4aee9e48a78b43f6038a2124ad" contextRef="c20190930" unitRef="U002" decimals="-3">44000</us-gaap:UnrecognizedTaxBenefits>
  <!--Use of Estimates-->
  <us-gaap:UseOfEstimates id="Fact_5215687165394cdaa6d10a5f5015ebba" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Use of Estimates&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The preparation of condensed consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the balance sheet date and the reported revenue and expenses during the reported period in the condensed consolidated financial statements and accompanying notes. The Company&amp;#8217;s significant accounting estimates and assumptions include, but are not limited to, those used for the valuation and recognition of stock-based compensation arrangements and warrant liability, realization of deferred tax assets, assessment for impairment of long-lived assets, allowance for doubtful accounts, inventory valuation for excess and obsolete inventories, lower of cost and market value or net realizable value of inventories, depreciable lives of property and equipment, and useful life of intangible assets. Management of the Company believes that the estimates, judgments and assumptions are reasonable, based on information available at the time they are made. Actual results could differ materially from those estimates.&lt;/div&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
  <!--Weighted Average Number Diluted Shares Outstanding Adjustment-->
  <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment id="Fact_1a63028427d945e8b02f0baaa264df81" contextRef="c20190701to20190930" unitRef="U001" decimals="0">2354468</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number Diluted Shares Outstanding Adjustment-->
  <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment id="Fact_8f57616c164049faa8a93d53aea66895" contextRef="c20180701to20180930" unitRef="U001" decimals="0">2253943</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number Diluted Shares Outstanding Adjustment-->
  <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment id="Fact_a469c51ec50941c38c1364a310273c3f" contextRef="c20180101to20180930" unitRef="U001" decimals="0">2101791</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number Diluted Shares Outstanding Adjustment-->
  <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment id="Fact_a8b34f89d1e34197970d5375d8525f5d" contextRef="c20190101to20190930" unitRef="U001" decimals="0">2317066</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_0121ea107e3545848b6e654fddba0be8" contextRef="c20180701to20180930" unitRef="U001" decimals="0">15915864</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_6f497c4c41154ccf8f13298cd4187f52" contextRef="c20180101to20180930" unitRef="U001" decimals="0">15714310</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_da625ad42cac4f8c880a2bb31723988a" contextRef="c20190101to20190930" unitRef="U001" decimals="0">16381944</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_e21e40bfd3274d839050b5379d62c52c" contextRef="c20190701to20190930" unitRef="U001" decimals="0">16999746</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_1bcd1bf1c38644609c3d3d1c8f216a27" contextRef="c20180101to20180930" unitRef="U001" decimals="0">17816101</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_852e0754a0c246dcb18301fe9a445b03" contextRef="c20190701to20190930" unitRef="U001" decimals="0">19354214</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_97952e9fa2994580a8529a160281e032" contextRef="c20190101to20190930" unitRef="U001" decimals="0">18699010</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_a0c864bafd2c43cda561f1027bee89d4" contextRef="c20180701to20180930" unitRef="U001" decimals="0">18169807</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Term of Supplemental Agreement-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:TermOfSupplementalAgreement id="Fact_b4ccfac51d3c45338c588da4ef2246d2" contextRef="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P3Y</acmr:TermOfSupplementalAgreement>
  <!--Number of Investors Owned by Employees Entities-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NumberOfInvestorsOwnedByEmployeesEntities id="Fact_d262b6f20e8c4cceb0e2b3067b78dac9" contextRef="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U006" decimals="INF">2</acmr:NumberOfInvestorsOwnedByEmployeesEntities>
  <!--Redeemable Non-Controlling Interests [Text Block]-->
  <acmr:RedeemableNonControllingInterestsTextBlock id="Fact_5dc30fd76a864be09107ffcf231f7155" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 14 &amp;#8211; REDEEMABLE NON-CONTROLLING INTERESTS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;As discussed in note 1, during the quarter ended September 30, 2019, ACM Shanghai issued to the Investors equity in the form of redeemable non-controlling interests, representing 4.2% of the outstanding shares of ACM Shanghai. Two of the Investors are entities owned by certain employees of ACM Shanghai (the &amp;#8220;Employee Entities&amp;#8221;), and the purchase price paid by the Employee Entities represented a discount of 20% from the purchase price paid by the other Investors.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;In addition to the capital increase, ACM Shanghai entered into a supplemental agreement (&amp;#8220;Supplemental Agreement&amp;#8221;) with each of the Investors. Under each Supplemental Agreement, ACM Shanghai and the Investor party thereto agreed to use their respective best efforts to facilitate the completion of the Listing and the STAR IPO within three years from the date on which the Placement Shares are issued. If, by the end of such three-year period, the Listing and the STAR IPO have not been completed and the China Securities Regulatory Commission has not otherwise approved the registration of ACM Shanghai&amp;#8217;s Listing registration application, the Investor and ACM Shanghai each will have the right to require that ACM Shanghai repurchase the Investor&amp;#8217;s shares for a price equal to the initial purchase price paid by the Investor, without interest. The Supplemental Agreements will be automatically terminated on the date when ACM Shanghai formally submits the Listing registration application document to the Shanghai Stock Exchange.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;Because the Investors have the right to require ACM Shanghai to repurchase their ownership interests in ACM Shanghai at a fixed purchase price, those ownership interests are classified as redeemable non-controlling interests under ASC 480. The Company has elected to apply the entire adjustment method (income classification) for subsequent measurement in accordance with ASC 480&amp;#8209;10-S99.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The components of the change in the redeemable non-controlling interests for the nine months ended September 30, 2019 are presented in the following table:&lt;/div&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance at January 1, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 58%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Increase in redeemable non-controlling interests due to issuance of common stock&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;27,264&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Net income attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;307&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 58%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Effect of foreign currency translation loss attributable to redeemable non-controlling interests&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;(683&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 58%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0); font-weight: bold;"&gt;Balance at September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;26,888&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:RedeemableNonControllingInterestsTextBlock>
  <!--Proceeds from Issuance of Net of Direct Expenses-->
  <acmr:ProceedsFromIssuanceOfNetOfDirectExpenses id="Fact_836e696223ec41558534f905f9b8f16e" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">2287000</acmr:ProceedsFromIssuanceOfNetOfDirectExpenses>
  <!--Prepaid for material purchases-Ninebell Co., Ltd [Member]-->
  <acmr:PrepaidForMaterialPurchases id="Fact_a5dcc26160d54f2b84d47c004e575bc0" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">160000</acmr:PrepaidForMaterialPurchases>
  <!--Prepaid for material purchases-Ninebell Co., Ltd [Member]-->
  <acmr:PrepaidForMaterialPurchases id="Fact_ecfd82677d75434ca7609db2676d0f56" contextRef="c20181231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">572000</acmr:PrepaidForMaterialPurchases>
  <!--Loan Extended Period-Ninebell Co., Ltd [Member]-->
  <acmr:LoanExtendedPeriod id="Fact_704371e988a24af5a563729561c75d49" contextRef="c20190101to20190930_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember">P180D</acmr:LoanExtendedPeriod>
  <!--Amount Funded for Leasehold Improvements-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:AmountFundedForLeaseholdImprovements id="Fact_f6cbb80763f94c70896c268b9d403db3" contextRef="c20170929_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">771000</acmr:AmountFundedForLeaseholdImprovements>
  <!--Cash Delivered as of Close of Business-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <acmr:CashDeliveredAsOfCloseOfBusiness id="Fact_329da7899339421e83280c42da2302fd" contextRef="c20161209_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">2981000</acmr:CashDeliveredAsOfCloseOfBusiness>
  <!--Cash Delivered as of Close of Business-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <acmr:CashDeliveredAsOfCloseOfBusiness id="Fact_3ffb5688f7674b11acf9f2fff4634595" contextRef="c20161209_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U005" decimals="-3">20124000</acmr:CashDeliveredAsOfCloseOfBusiness>
  <!--Long-Term Investment [Table Text Block]-->
  <acmr:LongTermInvestmentTableTextBlock id="Fact_a234b10b7e8840ae95d2f830cd9e8712" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div&gt;The investment in Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership (LP) is accounted for under the cost method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Investment &amp;#8211; equity method&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,620&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,360&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Investment &amp;#8211; cost method&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;4,348&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;5,968&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,360&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LongTermInvestmentTableTextBlock>
  <!--Ownership Percentage in Partnership-->
  <acmr:OwnershipPercentageInPartnership id="Fact_1f1794f20e544d2593e750ec87cb6231" contextRef="c20190930" unitRef="U004" decimals="1">0.1</acmr:OwnershipPercentageInPartnership>
  <!--Investment in Partnership-->
  <acmr:InvestmentInPartnership id="Fact_9d42aa56f718480a954684ab2b71081f" contextRef="c20190930" unitRef="U002" decimals="-3">4200000</acmr:InvestmentInPartnership>
  <!--Investment in Partnership-->
  <acmr:InvestmentInPartnership id="Fact_bb5c796f0f1c4bdab2990102b06e8340" contextRef="c20190930" unitRef="U005" decimals="-3">30000000</acmr:InvestmentInPartnership>
  <!--Lessee Operating Lease Supplemental Cash Flow Information Related to Operating Leas [Table Text Block]-->
  <acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock id="Fact_7ddfb4730dfa4a10b3d42a3d395e689b" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;Supplemental cash flow information related to operating leases was as follows for the period ended September 30, 2019:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 80%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Nine Months Ended&lt;/div&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 16.2pt;"&gt;Operating cash outflow from operating leases&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;455&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,181&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock>
  <!--Lessee, Operating Lease, Weighted Average Remaining Lease Term and Discount Rate [Table Text Block]-->
  <acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock id="Fact_25db2e46d76a415bacb4fcebaaabc12f" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-indent: 18pt; font-size: 10pt;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of September 30, 2019:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle;"&gt;&amp;#160;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;September 30, 2019&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Remaining lease term and discount rate:&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: rgb(255, 0, 0);"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Weighted average remaining lease term (years)&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;3.27&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width: 70%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;&lt;td style="width: 10%; vertical-align: middle; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right;"&gt;5.42%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock>
  <!--long-term investment [Text Block]-->
  <acmr:LongTermInvestmentTextBlock id="Fact_c0960d252db14f72b92d715bd1941d1c" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 10 &amp;#8211; LONG-TERM INVESTMENT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On September 6, 2017, ACM and Ninebell Co., Ltd. (&amp;#8220;Ninebell&amp;#8221;), a Korean company that is one of the Company&amp;#8217;s principal materials suppliers, entered into an ordinary share purchase agreement, effective as of September 11, 2017, pursuant to which Ninebell issued to ACM ordinary shares representing 20% of Ninebell&amp;#8217;s post-closing equity for a purchase price of $1,200, and a common stock purchase agreement, effective as of September 11, 2017, pursuant to which ACM issued 133,334 shares of Class A common stock to Ninebell for a purchase price of $1,000 at $7.50 per share&lt;font style="color: rgb(0, 0, 0);"&gt;. The investment in Ninebell is accounted for under the equity method.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;&lt;font style="color: rgb(0, 0, 0);"&gt;On June 27, 2019, &lt;/font&gt;ACM Shanghai and Shengyi Semiconductor Technology Co., Ltd. (&amp;#8220;Shengyi&amp;#8221;), a company based in Wuxi, China that is one of the Company&amp;#8217;s components suppliers, entered into an agreement pursuant to which Shengyi issued to ACM Shanghai shares representing 15% of Shengyi&amp;#8217;s post-closing equity for a purchase price of $109. The investment in Shengyi is accounted for under the cost method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On September 5, 2019, ACM Shanghai, entered into a Partnership Agreement with six other investors, as limited partners, and Beijing Shixi Qingliu Investment Co., Ltd., as general partner and manager, with respect to the formation of Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership (LP), a Chinese limited partnership based in Hefei, China. Pursuant to such Partnership Agreement, on September 30, 2019, ACM Shanghai invested RMB 30,000 ($4,200), which represented 10% of the Partnership&amp;#8217;s total subscribed capital.&amp;#160; The investment in Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership (LP) is accounted for under the cost method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 56%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;September 30,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;December 31,&lt;br /&gt; 2018&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Investment &amp;#8211; equity method&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,620&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,360&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Investment &amp;#8211; cost method&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(13, 13, 13);"&gt;4,348&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -7.2pt; margin-left: 7.2pt; color: rgb(0, 0, 0);"&gt;Total&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;5,968&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;1,360&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LongTermInvestmentTextBlock>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_0165defa80b64489ac72b51a2f490ff1" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">307000</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_254aa8ed4d9f414f9eea91eeef51504a" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">307000</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_4642a71b68a64187943b30dbbc17ef2e" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_9e5e25e5eba54c4e8920878260f7b24f" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">0</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_a2d58e0a05324e7cba59c738eb30f562" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">2981000</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_815befdeadd549da8645f92b4ad1f35a" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_3fba36a5f39d4033901866dd88a6906f" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Additional Paid-In Capital [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_7ed2375873d2475788116849a63717f2" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">2981000</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Accumulated Surplus (Deficit) [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_b6655c061866436dacf60b2f51f8d961" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_d17f77a8bd6743cf8ec20616d3f396ad" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Accumulated Surplus (Deficit) [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_028b3477e2884e98b7690e39974de30e" contextRef="c20180101to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_0b245f5edc864470b10d6f4ccf2f5328" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Additional Paid-In Capital [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_3d594bfb267d4107b265aa84cbb8a780" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Additional Paid-In Capital [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_4bc60e37440b49a1a3d29052db3213a1" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_598898fdfd8b4350a180b47a19b26399" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_5aed5c9468aa46169450d6e9daf5af0b" contextRef="c20180701to20180930" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_7256c4fe621140fa877a6ef3e7541417" contextRef="c20190101to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_75bec58876254a0a851a742b7a377c48" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_7630aece526d43b79993d62f85ae33a6" contextRef="c20180701to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_7b9e74556d694314a5a8f6ed67c084d3" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_8b225e5025d6423188ed6f09c03e3b5b" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_90fb50e423bf42a78d357f28e6f752ae" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Additional Paid-In Capital [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_9b8eaa082ebd49078ed8d64d3dd421cd" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Accumulated Surplus (Deficit) [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_9c7241ba142148768777006075351f58" contextRef="c20190701to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_9d8579c2458c4decbce44d795e63bafd" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Additional Paid-In Capital [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_a029dc5a1bf04f6cb3dd65db6285b0f0" contextRef="c20180101to20180930_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_c6c08be5c7794b1fac94a6eec9be9edf" contextRef="c20190701to20190930_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_e049fabffa724d81accb32cce657ee22" contextRef="c20190701to20190930" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class B [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_e4b4deb8077f40cc8b319c9e6059af71" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Accumulated Surplus (Deficit) [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_e608dffefd85457b939832677e0e5c18" contextRef="c20180701to20180930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class A [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_ebc1dd9716db4f8fb26f04bd961cbd59" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class A [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_ef88930a6aab405a86683312b24dc899" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class B [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_fd627bf5294e479db8ce8b6188c91860" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Value, Conversion of Class B Stock to Class A Stock-Accumulated Surplus (Deficit) [Member]-->
  <acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock id="Fact_ff70e2adae44451099df01a59fc618e9" contextRef="c20190101to20190930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueConversionOfClassBStockToClassAStock>
  <!--Noncontrolling Interest, Percentage of Discount on Purchase Price for Employee Entities-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NoncontrollingInterestPercentageOfDiscountOnPurchasePriceForEmployeeEntities id="Fact_c87bbc159ca444eb842473c303854cb5" contextRef="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.2</acmr:NoncontrollingInterestPercentageOfDiscountOnPurchasePriceForEmployeeEntities>
  <!--Noncontrolling Interest, Percentage of Discount on Purchase Price for Employee Entities-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NoncontrollingInterestPercentageOfDiscountOnPurchasePriceForEmployeeEntities id="Fact_918e79b5288146cdbc1035856b90d5ae" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.2</acmr:NoncontrollingInterestPercentageOfDiscountOnPurchasePriceForEmployeeEntities>
  <!--Share-based Compensation Arrangement by Share-based Payment Award Options Exercised in Period Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue id="Fact_708e7ca6ad104f8990cff2bb716ba363" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.45</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award Options Exercised in Period Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue id="Fact_c4fdd1d350ad4e4c8538183f688b119b" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">0.60</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award Options Expired in Period Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue id="Fact_c133fa1c497041c9b801eebbf81e615a" contextRef="c20190101to20190930_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award Options Expired in Period Weighted Average Grant Date Fair Value-Share-based Payment Arrangement, Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue id="Fact_f0b0f4074e4340209bcffd8204fdea49" contextRef="c20190101to20190930_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">0.55</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
  <!--Voting Rights per Share-Common Class B [Member]-->
  <acmr:VotingRightsPerShare id="Fact_4855a1182fec441fb928c3b51bd4aa12" contextRef="c20190930_StatementClassOfStockAxis_CommonClassBMember" unitRef="U007" decimals="INF">20</acmr:VotingRightsPerShare>
  <!--Voting Rights per Share-Common Class A [Member]-->
  <acmr:VotingRightsPerShare id="Fact_d0bd3db4706a4ed4a5b1138b6dc4185d" contextRef="c20190930_StatementClassOfStockAxis_CommonClassAMember" unitRef="U007" decimals="INF">1</acmr:VotingRightsPerShare>
  <!--Underwriting Discount and Offering Expenses-Common Class A [Member]-->
  <acmr:UnderwritingDiscountAndOfferingExpenses id="Fact_54ed6feb365d42a29d0a8d548091ab34" contextRef="c20190801to20190831_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2287000</acmr:UnderwritingDiscountAndOfferingExpenses>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class A [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_0dad93b74d66461d8563fb2469b5c0ba" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1750</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_2302dc632b4a41159231c13c1938265f" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">-491315</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class A [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_23754658ff334f66b0f43fa6b8af7b0a" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">20815</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_66b3c6ad82a14ecab7b4eb8f47bcdb6a" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">35815</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class B [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_cf3544d4487d4a93b683994bdd2ffb74" contextRef="c20190701to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">-20815</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Stock [Member]-Common Class B [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_eef264e868ed489894a27c58fb2fb171" contextRef="c20180701to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">-1750</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_f30d53648165415eaa16215b7199947b" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">491315</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Conversion of Class B Stock to Class A Stock-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock id="Fact_fdb545cbc3f3486dbe200ae9079cb50e" contextRef="c20190101to20190930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">-35815</acmr:StockIssuedDuringPeriodSharesConversionOfClassBStockToClassAStock>
  <!--Stock Issued During Period, Shares, Common Stock Warrant Exercised-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised id="Fact_c8bba37bcf8d49be8ea5f5657fb78f3c" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
  <!--Stock Issued During Period, Shares, Common Stock Warrant Exercised-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised id="Fact_cc4dda18edcb45c58ad70d0583ea6fa5" contextRef="c20180101to20180930_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">397502</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
  <!--Stock Issued During Period, Shares, Common Stock Warrant Exercised-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised id="Fact_d3eefed33f694a5384ad039a77fc3952" contextRef="c20180330to20180330_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">397502</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
  <!--Inventory Pledged as Collateral for Borrowings-->
  <acmr:InventoryPledgedAsCollateralForBorrowings id="Fact_5789897f9163470bba1c1c28e759bf30" contextRef="c20181231" unitRef="U002" decimals="-3">0</acmr:InventoryPledgedAsCollateralForBorrowings>
  <!--Inventory Pledged as Collateral for Borrowings-->
  <acmr:InventoryPledgedAsCollateralForBorrowings id="Fact_94e190f9a1694b11b3809760ab078392" contextRef="c20190930" unitRef="U002" decimals="-3">0</acmr:InventoryPledgedAsCollateralForBorrowings>
  <!--Basis of Presentation and Principles of Consolidation [Policy Text Block]-->
  <acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock id="Fact_0deeef4c9c47462f9f4b0e45b8ef2c99" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; font-size: 10pt;"&gt;&lt;u&gt;Basis of Presentation and Principles of Consolidation&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The consolidated accounts include ACM and its subsidiaries ACM Shanghai, ACM Wuxi, CleanChip, ACM Korea, ACM Research (CA), Inc. and Shengwei Research (Shanghai), Inc.&amp;#160; Subsidiaries are those entities in which ACM, directly and indirectly, controls more than one half of the voting power. All significant intercompany transactions and balances have been eliminated upon consolidation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The accompanying condensed consolidated financial statements of the Company have been prepared in accordance with accounting principles generally accepted in the United States of America (&amp;#8220;GAAP&amp;#8221;) for interim financial information and the rules and regulations of the SEC for reporting on Form 10-Q. Accordingly, they do not include all the information and footnotes required by GAAP for complete financial statements herein. The unaudited condensed consolidated financial statements herein should be read in conjunction with the historical consolidated financial statements of the Company for the year ended December 31, 2018 included in ACM&amp;#8217;s Annual Report on Form 10-K for the year ended December 31, 2018.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The accompanying condensed consolidated balance sheet as of September 30, 2019, the condensed consolidated statements of operations and comprehensive income for the three and nine months ended September 30, 2019 and 2018, the condensed consolidated statements of changes in stockholders&amp;#8217; equity for the three and nine months ended September 30, 2019 and 2018, and the condensed consolidated statements of cash flows for the nine months ended September 30, 2019 and 2018 are unaudited. In the opinion of management, the unaudited condensed consolidated financial statements of the Company reflect all adjustments that are necessary for a fair presentation of the Company&amp;#8217;s financial position and results of operations. Such adjustments are of a normal recurring nature, unless otherwise noted. The balance sheet as of September 30, 2019 and the results of operations for the three and nine months ended September 30, 2019 are not necessarily indicative of the results to be expected for any future period.&lt;/div&gt;&lt;/div&gt;</acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock>
  <!--Accrued Machine Testing Fees, Current-->
  <acmr:AccruedMachineTestingFeesCurrent id="Fact_1e95f93b9f1248078616aa92436bf032" contextRef="c20181231" unitRef="U002" decimals="-3">3076000</acmr:AccruedMachineTestingFeesCurrent>
  <!--Accrued Machine Testing Fees, Current-->
  <acmr:AccruedMachineTestingFeesCurrent id="Fact_513b0784d26644ffb541692119f1ba8c" contextRef="c20190930" unitRef="U002" decimals="-3">1333000</acmr:AccruedMachineTestingFeesCurrent>
  <!--Term to complete listing of shares-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:TermToCompleteListingOfShares id="Fact_cb487c9f41904535a9be8d68b2a86cbe" contextRef="c20190617to20190617_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P3Y</acmr:TermToCompleteListingOfShares>
  <!--Capital Injected in Subsidiary-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:CapitalInjectedInSubsidiary id="Fact_ee4d5db94c3344bf9b024346ac19f817" contextRef="c20190930_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U002" decimals="-3">0</acmr:CapitalInjectedInSubsidiary>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_5f8802a87d734f3598bb34c03782ab33" contextRef="c20190612to20190612_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U005" decimals="-3">187900000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_a76260e653e74f8099abdc69b49beac9" contextRef="c20190612to20190612_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">27300000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Percentage of Outstanding Shares to be Sold to Investors-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:PercentageOfOutstandingSharesToBeSoldToInvestors id="Fact_fb87b5def31f43b1b68eed85aeec817d" contextRef="c20190612to20190612_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="3">0.042</acmr:PercentageOfOutstandingSharesToBeSoldToInvestors>
  <!--Percentage of Outstanding Shares to be Sold to Investors-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:PercentageOfOutstandingSharesToBeSoldToInvestors id="Fact_39cc5dab08164beb85dbbc555eb783ff" contextRef="c20190701to20190930_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.0420</acmr:PercentageOfOutstandingSharesToBeSoldToInvestors>
  <!--Business Acquisition, Percentage of Equity Interests Acquired-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired id="Fact_5fd17c32f8a949bcb57674a51c8ec2ba" contextRef="c20171108_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.1836</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
  <!--Business Acquisition, Percentage of Equity Interests Acquired-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired id="Fact_febbd9a263d14f1286573682fab3f24d" contextRef="c20170831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.1877</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
  <!--Number of Investors with Agreements Entered-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NumberOfInvestorsWithAgreementsEntered id="Fact_38575a54e3d349b6b417a0b599ec3254" contextRef="c20190612to20190612_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U006" decimals="INF">7</acmr:NumberOfInvestorsWithAgreementsEntered>
  <!--Number of Investors with Agreements Entered-Shengyi Semiconductor Technology Company Limited [Member]-->
  <acmr:NumberOfInvestorsWithAgreementsEntered id="Fact_6c4cc023d23d4ea697ac9410c81e9aad" contextRef="c20190905to20190905_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U001" decimals="INF">6</acmr:NumberOfInvestorsWithAgreementsEntered>
  <!--Registered Capital-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:RegisteredCapital id="Fact_12c12645ea4146bbb41986ff693ef304" contextRef="c20190331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U005" decimals="-3">5000000</acmr:RegisteredCapital>
  <!--Registered Capital-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:RegisteredCapital id="Fact_84b288482953448d97b3760a23380f9c" contextRef="c20190331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U002" decimals="-3">727000</acmr:RegisteredCapital>
  <!--Warrant Liability [Text Block]-->
  <acmr:WarrantLiabilityTextBlock id="Fact_6c7e7da929bb41e2a65e0affd7b46223" contextRef="c20190101to20190930">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-size: 10pt; font-weight: bold;"&gt;NOTE 12 &amp;#8211; WARRANT LIABILITY&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;On December 9, 2016, ACM Shanghai received the SMC Investment from SMC for potential investment pursuant to terms to be subsequently negotiated, and on March 14, 2017, ACM, ACM Shanghai and SMC entered into the SMC Agreement pursuant to which, in exchange for the SMC Investment, ACM issued the SMC Warrant to SMC (note 11).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; text-indent: 18pt; font-size: 10pt;"&gt;The SMC Warrant, while outstanding as of December 31, 2017, was classified as a liability as it was conditionally puttable in accordance with ASC 480, &lt;font style="font-style: italic;"&gt;Distinguishing Liabilities from Equity&lt;/font&gt;. The fair value of the SMC Warrant was adjusted for changes in fair value at each reporting period, but could not be lower than the proceeds of the SMC Investment. The corresponding non-cash gain or loss of the changes in fair value was recorded in earnings. The Black-Scholes valuation model was used to value the SMC Warrant.&amp;#160; On March 30, 2018, ACM entered into a warrant exercise agreement with ACM Shanghai and SMC pursuant to which SMC exercised the SMC Warrant in full by issuing to ACM a senior secured promissory note in the principal amount of $3,000. ACM then transferred such note to ACM Shanghai in exchange for an intercompany promissory note of ACM Shanghai in the principal amount of $3,000. Each of the two notes bears interest at a rate of 3.01% per annum and matures on August 17, 2023. As security for its performance of its obligations under its note, SMC granted to ACM Shanghai a security interest in the 397,502 shares of Class A common stock issued to SMC upon its exercise of the SMC Warrant. Upon the issuance of 397,502 shares of Class A common stock to SMC, the senior secured promissory note issued to ACM by SMC was offset against the SMC Investment.&lt;/div&gt;&lt;/div&gt;</acmr:WarrantLiabilityTextBlock>
  <!--Payment for Cancellation of Stock Options-->
  <acmr:PaymentForCancellationOfStockOptions id="Fact_9cc49067730d4bb4a734847a0e340602" contextRef="c20190101to20190930" unitRef="U002" decimals="-3">576000</acmr:PaymentForCancellationOfStockOptions>
  <!--Payment for Cancellation of Stock Options-->
  <acmr:PaymentForCancellationOfStockOptions id="Fact_e634c0b256f84736bb822775b5250096" contextRef="c20180101to20180930" unitRef="U002" decimals="-3">0</acmr:PaymentForCancellationOfStockOptions>
</xbrl>
