<?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: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/20200331" xmlns="http://www.xbrl.org/2003/instance">
  <link:schemaRef xlink:type="simple" xlink:href="acmr-20200331.xsd" />
  <xbrli:context id="c20200101to20200331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200504_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>2020-05-04</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200504_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>2020-05-04</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331">
    <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-03-31</xbrli:endDate>
    </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="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="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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>2019-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="c20191231_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-12-31</xbrli:instant>
    </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="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="c20191231_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-12-31</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="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190331_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>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">acmr:SecondTrancheInvestorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">acmr:FirstTrancheInvestorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </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="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190601to20190630_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-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember">
    <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:RelatedPartyTransactionAxis">acmr:FirstTrancheInvestorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191129to20191129_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember">
    <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:RelatedPartyTransactionAxis">acmr:SecondTrancheInvestorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-11-29</xbrli:startDate>
      <xbrli:endDate>2019-11-29</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_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-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_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:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchWuxiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchKoreaCOLTDMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:CleanChipTechnologiesLimitedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCAIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchCaymanIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">acmr:SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</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:RelatedPartyTransactionsByRelatedPartyAxis">acmr:NinebellCompanyLimitedMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</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="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-09-30</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">acmr:HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </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="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="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="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="c20170314_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>2017-03-14</xbrli:instant>
    </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="c20200101to20200331_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:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </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="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190701to20190930_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:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </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="c20190801to20190831_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-08-01</xbrli:startDate>
      <xbrli:endDate>2019-08-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_IncomeStatementLocationAxis_CostOfSalesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeStatementLocationAxis_CostOfSalesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20190331_AwardTypeAxis_EmployeeStockOptionMember_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>
        <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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20191231_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:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_AwardTypeAxis_EmployeeStockOptionMember_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>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_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-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_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-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20190101to20191231_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-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <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>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">
    <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>
        <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">acmr:ACMResearchShanghaiIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001680062</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:unit id="U001">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U002">
    <xbrli:measure>iso4217:USD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U003">
    <xbrli:divide>
      <xbrli:unitNumerator>
        <xbrli:measure>iso4217:USD</xbrli:measure>
      </xbrli:unitNumerator>
      <xbrli:unitDenominator>
        <xbrli:measure>xbrli:shares</xbrli:measure>
      </xbrli:unitDenominator>
    </xbrli:divide>
  </xbrli:unit>
  <xbrli:unit id="U004">
    <xbrli:measure>xbrli:pure</xbrli:measure>
  </xbrli:unit>
  <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:Customer</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U008">
    <xbrli:measure>iso4217:KRW</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U009">
    <xbrli:measure>acmr:Vote</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="U010">
    <xbrli:measure>acmr:Subsidiary</xbrli:measure>
  </xbrli:unit>
  <!--Amendment Flag-->
  <dei:AmendmentFlag id="Fact_54594c4cfbb84e268cc86ed527c081f4" contextRef="c20200101to20200331">false</dei:AmendmentFlag>
  <!--Current Fiscal Year End Date-->
  <dei:CurrentFiscalYearEndDate id="Fact_54dc66c147b244bebdeb3d987c78c64a" contextRef="c20200101to20200331">--12-31</dei:CurrentFiscalYearEndDate>
  <!--Document Period End Date-->
  <dei:DocumentPeriodEndDate id="Fact_702a222112484ef7a41ad753ea2ebdb3" contextRef="c20200101to20200331">2020-03-31</dei:DocumentPeriodEndDate>
  <!--Entity Address, State or Province-->
  <dei:EntityAddressStateOrProvince id="Fact_5545321d061b4189917e68bd2a69f787" contextRef="c20200101to20200331">CA</dei:EntityAddressStateOrProvince>
  <!--Entity Current Reporting Status-->
  <dei:EntityCurrentReportingStatus id="Fact_c8ee992955614df3b23a3bc176e4ac32" contextRef="c20200101to20200331">Yes</dei:EntityCurrentReportingStatus>
  <!--Entity Filer Category-->
  <dei:EntityFilerCategory id="Fact_2307949dcebb4866bf17c0b6408a396c" contextRef="c20200101to20200331">Accelerated Filer</dei:EntityFilerCategory>
  <!--Entity Registrant Name-->
  <dei:EntityRegistrantName id="Fact_4c633da1dcae462c901fc250ba7d58dc" contextRef="c20200101to20200331">ACM Research, Inc.</dei:EntityRegistrantName>
  <!--Entity Central Index Key-->
  <dei:EntityCentralIndexKey id="Fact_e4ad8f0b597e469daaeedb185a83ef64" contextRef="c20200101to20200331">0001680062</dei:EntityCentralIndexKey>
  <!--Entity Common Stock, Shares Outstanding-Common Class A [Member]-->
  <dei:EntityCommonStockSharesOutstanding id="Fact_15efc9a9e99e40feaf41b63a4724fac3" contextRef="c20200504_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16327346</dei:EntityCommonStockSharesOutstanding>
  <!--Entity Common Stock, Shares Outstanding-Common Class B [Member]-->
  <dei:EntityCommonStockSharesOutstanding id="Fact_e3bddf6816a24cf9801d99a783be756e" contextRef="c20200504_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1852608</dei:EntityCommonStockSharesOutstanding>
  <!--Document Fiscal Year Focus-->
  <dei:DocumentFiscalYearFocus id="Fact_1c3adb9e7fe64ec88da7f3e988a0d82b" contextRef="c20200101to20200331">2020</dei:DocumentFiscalYearFocus>
  <!--Document Fiscal Period Focus-->
  <dei:DocumentFiscalPeriodFocus id="Fact_a2742c52bc80417d96792381f7f54568" contextRef="c20200101to20200331">Q1</dei:DocumentFiscalPeriodFocus>
  <!--Document Type-->
  <dei:DocumentType id="Fact_cb9c9d2c7bf7444fbe698b45c08dbe40" contextRef="c20200101to20200331">10-Q</dei:DocumentType>
  <!--Entity Interactive Data Current-->
  <dei:EntityInteractiveDataCurrent id="Fact_10b31f26842f411399cd46933875729e" contextRef="c20200101to20200331">Yes</dei:EntityInteractiveDataCurrent>
  <!--Entity Shell Company-->
  <dei:EntityShellCompany id="Fact_a0be3220b88a4a41b138db38eaf5fd6c" contextRef="c20200101to20200331">false</dei:EntityShellCompany>
  <!--Entity Emerging Growth Company-->
  <dei:EntityEmergingGrowthCompany id="Fact_77bced61778845b0a46bea2e9cfd5824" contextRef="c20200101to20200331">true</dei:EntityEmergingGrowthCompany>
  <!--Entity Ex Transition Period-->
  <dei:EntityExTransitionPeriod id="Fact_241199b31bc14e359b1dc48d566bf412" contextRef="c20200101to20200331">true</dei:EntityExTransitionPeriod>
  <!--Entity Small Business-->
  <dei:EntitySmallBusiness id="Fact_bea0cdf3ea21428983bdc58be2bd8097" contextRef="c20200101to20200331">true</dei:EntitySmallBusiness>
  <!--Accounts Payable, Related Parties, Current-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_23e27c9282ed4e9588f64ac27b9d1ebd" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">488000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts Payable, Related Parties, Current-Ninebell Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_401555de98ef468cb29ad136174e18c5" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">727000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts Payable, Related Parties, Current-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_9a3244eca0e44b38b0e9364e91cc870c" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">189000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts Payable, Related Parties, Current-Ninebell Co., Ltd [Member]-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_ad8936d898884d49b8319f9e6c9725fb" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">2604000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts Payable, Related Parties, Current-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_cbf2d6de13ca46aebb05548210fc280d" contextRef="c20200331" unitRef="U002" decimals="-3">2793000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts Payable, Related Parties, Current-->
  <us-gaap:AccountsPayableRelatedPartiesCurrent id="Fact_ef05f09db6e34158a791aede33c05902" contextRef="c20191231" unitRef="U002" decimals="-3">1215000</us-gaap:AccountsPayableRelatedPartiesCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_0249fce5a57647c6b4a7abe06fff86c2" contextRef="c20191231" unitRef="U002" decimals="-3">13262000</us-gaap:AccountsPayableCurrent>
  <!--Accounts payable-->
  <us-gaap:AccountsPayableCurrent id="Fact_a167d4032a0f48f6aee42628073ee198" contextRef="c20200331" unitRef="U002" decimals="-3">18616000</us-gaap:AccountsPayableCurrent>
  <!--Accounts Payable and Accrued Liabilities Disclosure [Text Block]-->
  <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock id="Fact_87a212380c9b41ecb088684989d55868" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 7 &amp;#8211; OTHER PAYABLE AND ACCRUED EXPENSES&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, other payable and accrued expenses consisted of the following:&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;Accrued commissions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;4,593&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;4,082&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,092&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,811&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;2,775&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;2,092&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;403&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;165&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,424&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,044&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,268&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; 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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;14,331&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;12,874&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: #CCEEFF;"&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 March 31, 2020 and $0 as of December 31, 2019 (note 3)-->
  <us-gaap:AccountsReceivableNetCurrent id="Fact_71d4e7f028da4020953476de4691f1a7" contextRef="c20191231" unitRef="U002" decimals="-3">31091000</us-gaap:AccountsReceivableNetCurrent>
  <!--Accounts receivable, less allowance for doubtful accounts of $0 as of March 31, 2020 and $0 as of December 31, 2019 (note 3)-->
  <us-gaap:AccountsReceivableNetCurrent id="Fact_a1c0eaa8c64a4d64b736760d00b8a025" contextRef="c20200331" unitRef="U002" decimals="-3">37260000</us-gaap:AccountsReceivableNetCurrent>
  <!--Accounts Receivable, before Allowance for Credit Loss, Current-->
  <us-gaap:AccountsReceivableGrossCurrent id="Fact_58e7dcb7a869408b86f9d31690f48eb5" contextRef="c20200331" unitRef="U002" decimals="-3">37260000</us-gaap:AccountsReceivableGrossCurrent>
  <!--Accounts Receivable, before Allowance for Credit Loss, Current-->
  <us-gaap:AccountsReceivableGrossCurrent id="Fact_dd56e30223f94996b6c88fbd6ab7c681" contextRef="c20191231" unitRef="U002" decimals="-3">31091000</us-gaap:AccountsReceivableGrossCurrent>
  <!--Accrued commissions-->
  <us-gaap:AccruedSalesCommissionCurrent id="Fact_2517d38e5f074adca0e9f13829039859" contextRef="c20191231" unitRef="U002" decimals="-3">4082000</us-gaap:AccruedSalesCommissionCurrent>
  <!--Accrued commissions-->
  <us-gaap:AccruedSalesCommissionCurrent id="Fact_e7211968abd343119bfd575db9a4189c" contextRef="c20200331" unitRef="U002" decimals="-3">4593000</us-gaap:AccruedSalesCommissionCurrent>
  <!--Accrued professional fees-->
  <us-gaap:AccruedProfessionalFeesCurrent id="Fact_04528c5c2a7e4704b3c92b516d57f8bf" contextRef="c20191231" unitRef="U002" decimals="-3">165000</us-gaap:AccruedProfessionalFeesCurrent>
  <!--Accrued professional fees-->
  <us-gaap:AccruedProfessionalFeesCurrent id="Fact_4b5887aa138c4f628285e1c42a8317eb" contextRef="c20200331" unitRef="U002" decimals="-3">403000</us-gaap:AccruedProfessionalFeesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent id="Fact_6243f11e7c834b65bdf1f55e9dc52405" contextRef="c20200331" unitRef="U002" decimals="-3">3347000</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Income taxes payable-->
  <us-gaap:AccruedIncomeTaxesCurrent id="Fact_c16a1206f3894db889532fa100033152" contextRef="c20191231" unitRef="U002" decimals="-3">3129000</us-gaap:AccruedIncomeTaxesCurrent>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_0c398e4a6dea44e1bc410c6f4e1c00ed" contextRef="c20200331" unitRef="U002" decimals="-3">3266000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment-->
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment id="Fact_a0569bc3b79044b1bfa006db936cae5c" contextRef="c20191231" unitRef="U002" decimals="-3">3077000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <!--Accumulated other comprehensive loss-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_57b9ebb0805440a1a7b7305f6f2a3d05" contextRef="c20200331" unitRef="U002" decimals="-3">-2623000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Accumulated other comprehensive loss-->
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax id="Fact_d8dcea1a73ba4d66a7b8aa3c9498b7e4" contextRef="c20191231" unitRef="U002" decimals="-3">-1675000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <!--Additional Paid in Capital-->
  <us-gaap:AdditionalPaidInCapital id="Fact_f8cf6e43dce849fa96523ebae5023470" contextRef="c20200331" unitRef="U002" decimals="-3">84351000</us-gaap:AdditionalPaidInCapital>
  <!--Additional Paid in Capital-->
  <us-gaap:AdditionalPaidInCapital id="Fact_fa227e23bb0a421e9230ff4ee425c755" contextRef="c20191231" unitRef="U002" decimals="-3">83487000</us-gaap:AdditionalPaidInCapital>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_085fd5ac62a94cc4ad9bb98627006276" contextRef="c20190101to20190331_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_108c4411b48c460dbe96f7191f9951dc" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Deficit [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_178e50a8bd054523949c4932ca6e7f0c" contextRef="c20190101to20190331_StatementEquityComponentsAxis_RetainedEarningsMember" 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_1ed3c7b68c7c4c278c60b8f95ff4652c" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_238a38a1049d4d88b7ee9af07fe4710e" contextRef="c20200101to20200331_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_2c6168764edd414f8b8750646a08dc9d" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Accumulated Deficit [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_51a9ff5bebc443e79cd66f034fc1f555" contextRef="c20200101to20200331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_6ae300eb13a743f6ae6eee2e08b831ca" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">689000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_6e385514dfb64b2983390153ba07c999" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">689000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_af3e0f042b5542659be48ea228c82383" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">744000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Additional Paid-In Capital [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_c93a1fd50ef64d8db29c27c605dc9f6e" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">744000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--APIC, Share-based Payment Arrangement, Increase for Cost Recognition-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue id="Fact_e3730a4539ff4f19ab2fe7e66008a6a1" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <!--Stock-based compensation expense-General and Administrative Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_07bfb5d7ccff4958b3d7732aff21e25a" contextRef="c20190101to20190331_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U002" decimals="-3">594000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-General and Administrative Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_13fb74d3156f434597b09f8c3240f35d" contextRef="c20200101to20200331_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U002" decimals="-3">363000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Selling and Marketing Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_16088b3bd50746e5a7c748a5d100d4d2" contextRef="c20200101to20200331_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember" unitRef="U002" decimals="-3">94000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Research and Development Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_c7cde84149604df5a4d3ddb07f4dce0f" contextRef="c20190101to20190331_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember" unitRef="U002" decimals="-3">86000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_e0560275bb324261a92164bb6d75549a" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">86000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_f39a1f20788b46f49500825cdaef21d7" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">431000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_feec52033b2a47c6ac7e263e6b612eea" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">172000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Selling and Marketing Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_355009303d124727ac5983b5280a7e18" contextRef="c20190101to20190331_IncomeStatementLocationAxis_SellingAndMarketingExpenseMember" unitRef="U002" decimals="-3">34000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_3a2600d0c26d45fcade56d9c68e4cdb9" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">744000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Cost of Sales [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_45791c4579ce40b99bfdef6d4502f81c" contextRef="c20190101to20190331_IncomeStatementLocationAxis_CostOfSalesMember" unitRef="U002" decimals="-3">30000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Cost of Sales [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_5caebda982bd42b4a5824f132f120eb1" contextRef="c20200101to20200331_IncomeStatementLocationAxis_CostOfSalesMember" unitRef="U002" decimals="-3">45000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_6920cae142854d5da6dbee33361fd1df" contextRef="c20190101to20190331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">221000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_75d6db600ca045779adf9d02fe9a8640" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">689000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_940a22481b094e379842446af28ea2a3" contextRef="c20190101to20190331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">523000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-ACM Research (Shanghai), Inc. [Member]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_9765ea14cf254447b95455fb94121770" contextRef="c20190101to20190331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">0</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Stock-based compensation expense-Research and Development Expense [Member]-->
  <us-gaap:AllocatedShareBasedCompensationExpense id="Fact_a8ed2d256efa465189a73a649f9981ed" contextRef="c20200101to20200331_IncomeStatementLocationAxis_ResearchAndDevelopmentExpenseMember" unitRef="U002" decimals="-3">187000</us-gaap:AllocatedShareBasedCompensationExpense>
  <!--Accounts receivable, allowance for doubtful accounts-->
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent id="Fact_941887c957de4b689c3e125634ef693d" contextRef="c20200331" unitRef="U002" decimals="-3">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <!--Accounts receivable, allowance for doubtful accounts-->
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent id="Fact_f351bc4b43554a91b0080d98b58ffb6f" contextRef="c20191231" unitRef="U002" decimals="-3">0</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <!--Assets-->
  <us-gaap:Assets id="Fact_10d43df39f5b42d092c9fe9a906d2eb6" contextRef="c20200331" unitRef="U002" decimals="-3">217208000</us-gaap:Assets>
  <!--Assets-->
  <us-gaap:Assets id="Fact_ffa16cec952449aeb2e3a6126cb16278" contextRef="c20191231" unitRef="U002" decimals="-3">217703000</us-gaap:Assets>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_3913a3830b2546f4953bbdb2d9a50f6e" contextRef="c20200331" unitRef="U002" decimals="-3">198477000</us-gaap:AssetsCurrent>
  <!--Assets, Current-->
  <us-gaap:AssetsCurrent id="Fact_dd77dad637d04f2e8b4f30b809574bf6" contextRef="c20191231" unitRef="U002" decimals="-3">198396000</us-gaap:AssetsCurrent>
  <!--Business Description and Basis of Presentation [Text Block]-->
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock id="Fact_f4fc48a56d824d49a31e9d7963b8314e" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000; font-weight: bold;"&gt;NOTE 1 &amp;#8211; DESCRIPTION OF BUSINESS&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 March 31, 2020, $142 capital had been injected into this subsidiary.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In June 2019 Cleanchip formed a wholly owned subsidiary in California, ACM Research (CA), Inc.(&amp;#8220;ACM California&amp;#8221;), to provide procurement services on behalf of ACM Shanghai.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In June 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 at the time of announcement, was wholly owned by ACM. As an initial step in qualifying for the Listing and STAR IPO, in June 2019 ACM Shanghai entered into agreements with seven investors (the &amp;#8220;First Tranche Investors&amp;#8221;), pursuant to which the First Tranche 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. In November 2019 ACM Shanghai entered into agreements with eight PRC-based investment firms (the &amp;#8220;Second Tranche Investors&amp;#8221;), pursuant to which the Second Tranche Investors agreed to acquire shares of ACM Shanghai for an aggregate of RMB 228,200 (equivalent to $32,400) for the same purchase price per share paid by the First Tranche Investors. Following the issuance of shares to the Second Tranche Investors, 91.7% of the outstanding shares of ACM Shanghai were owned by ACM, 3.8% were owned by the First Tranche Investors, and 4.5% were owned by the Second Tranche Investors. Because the First Tranche Investors and the Second Tranche 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.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In preparation for the STAR IPO, ACM completed a reorganization in December 2019 that included the sale of all of the shares of Cleanchip by ACM to ACM Shanghai for $3,500. The reorganization and sale had no impact on ACM&amp;#8217;s consolidated financial statements.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="background-color: #FFFFFF;"&gt;The Company has direct or indirect interests in the following subsidiaries:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table 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: middle; width: 33%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;&amp;#160;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Effective interest held as at&lt;/div&gt;&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; border-bottom: 2px solid rgb(0, 0, 0); width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;Name of subsidiaries&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;&lt;div style="font-weight: bold;"&gt;Place and date of&lt;/div&gt;incorporation&lt;/div&gt;&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Shanghai), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;China, May 2006&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Wuxi), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;China, July 2011&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;CleanChip Technologies Limited&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Hong Kong, June 2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research Korea CO., LTD.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Korea, December 2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Shangwei Research (Shanghai), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;China, March 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (CA), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;USA, June 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Cayman), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Cayman Islands, April 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;100.0&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;100.0&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_13513d646c2c45c4b112404e7f25e42e" contextRef="c20191231" unitRef="U002" decimals="-3">117859000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_de764d2aa54d4485a91ee0bf20bf67ae" contextRef="c20181231" unitRef="U002" decimals="-3">27124000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_18e270ccc2334d0ca755815664c10372" contextRef="c20190331" unitRef="U002" decimals="-3">27367000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_c3769b2b483841e789dee4c622febae0" contextRef="c20200331" unitRef="U002" decimals="-3">111009000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_32936f15aa3449b4ae4394c496d61c15" contextRef="c20200331" unitRef="U002" decimals="-3">52283000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_8591c5067cd049c9b654b45e3fda71d3" contextRef="c20191231" unitRef="U002" decimals="-3">58261000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash and cash equivalents-->
  <us-gaap:CashAndCashEquivalentsAtCarryingValue id="Fact_48f38fc84fcb4e81982cc7b6a135109b" contextRef="c20190331" unitRef="U002" decimals="-3">27367000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_86ed4ed856494888b501ecdf288945a3" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">243000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect-->
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect id="Fact_a576cc72dc8f4cf48ce2aa0a6ed2d1b2" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-6850000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <!--Commitments and contingencies (note 17)-->
  <us-gaap:CommitmentsAndContingencies id="Fact_9eab19a926d449d1a14bb26cceaf16d4" contextRef="c20191231" unitRef="U002" xsi:nil="true" />
  <!--Commitments and contingencies (note 17)-->
  <us-gaap:CommitmentsAndContingencies id="Fact_b5014eb3a80f46aa949ea643fb136d3a" contextRef="c20200331" unitRef="U002" xsi:nil="true" />
  <!--Commitments and Contingencies Disclosure [Text Block]-->
  <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock id="Fact_b8c64ba1b455486cbb6683dc2d1bdab5" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 16 &amp;#8211; COMMITMENTS AND CONTINGENCIES&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;As of March 31, 2020, the Company had $636 of open capital commitments.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 March 31, 2020, 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_04bedec0ded1447e90da2b6ae5bc62f1" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember" 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_4266ef94a81d4637938190ad125475cf" contextRef="c20200331_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_a3d35307317c4f98b341ba1a05508e73" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" 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_f539bd5759954097bee117a6a0eeebb9" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U003" decimals="INF">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
  <!--Common Stock, Shares, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_0b13583f72304e7cba8065f47623c271" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16182151</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_16d53b06a29847329dd5cba869e74929" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_bd79174b30064a17aa4d6005becb4483" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockSharesIssued id="Fact_d1d8bbe2bd2641a28d021250883337ba" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16317346</us-gaap:CommonStockSharesIssued>
  <!--Common Stock, Shares Authorized-Common Class A [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_269e32e04d074b3f9922306c50b9088c" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">50000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class B [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_51b17dabeeb2421aa43317cf598ca386" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">2409738</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class A [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_a9dd29aee48c4aa381ca2606b820f631" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">50000000</us-gaap:CommonStockSharesAuthorized>
  <!--Common Stock, Shares Authorized-Common Class B [Member]-->
  <us-gaap:CommonStockSharesAuthorized id="Fact_ac0a4aef036f49928e92e24e67cf7fc4" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">2409738</us-gaap:CommonStockSharesAuthorized>
  <!--Common stock, shares outstanding (in shares)-Common Class A [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_28685898ef714d4ba603fa4af913a24e" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16317346</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class A [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_4bb5290258af42f390133abb4372635b" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">16182151</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class B [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_67a2ae3e0d90449bbeeb45d5532ce919" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesOutstanding>
  <!--Common stock, shares outstanding (in shares)-Common Class B [Member]-->
  <us-gaap:CommonStockSharesOutstanding id="Fact_af77e05b9f5343379a0ce31b626da7f7" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1862608</us-gaap:CommonStockSharesOutstanding>
  <!--Common Stock, Value, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockValue id="Fact_cab6a9c18f1b47e098842d567ab195b9" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2000</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class A [Member]-->
  <us-gaap:CommonStockValue id="Fact_cad40c6f88d844aeb9f2e8d7bcd50c28" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2000</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockValue id="Fact_daeb5b9952ea404d820162097434fad7" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember" unitRef="U002" decimals="-3">0</us-gaap:CommonStockValue>
  <!--Common Stock, Value, Issued-Common Class B [Member]-->
  <us-gaap:CommonStockValue id="Fact_de6aad298936418c9596573ddb3c6e2e" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U002" decimals="-3">0</us-gaap:CommonStockValue>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_081713981113489eb3d7696323ac295e" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2514000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Attributable to Parent-->
  <us-gaap:ComprehensiveIncomeNetOfTax id="Fact_bf51554740244bed9daf4f4d4aeab2c4" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">757000</us-gaap:ComprehensiveIncomeNetOfTax>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_014a53ed62724d589fdc67bd54618020" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">63000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest-->
  <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest id="Fact_3508b746a6ab4feeb24e94a604e8afc9" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2514000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
  <!--Concentration of credit risk-Revenue Benchmark [Member]-->
  <us-gaap:ConcentrationRiskPercentage1 id="Fact_25e78b1098ee4bccb6d9b901b440348a" contextRef="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember" unitRef="U004" decimals="3">0.677</us-gaap:ConcentrationRiskPercentage1>
  <!--Concentration of credit risk-Revenue Benchmark [Member]-->
  <us-gaap:ConcentrationRiskPercentage1 id="Fact_372ee8e9fb0e47d2b9c1aa63ec265d23" contextRef="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember" unitRef="U004" decimals="3">0.761</us-gaap:ConcentrationRiskPercentage1>
  <!--Concentration of credit risk-Accounts Receivable [Member]-->
  <us-gaap:ConcentrationRiskPercentage1 id="Fact_609cb9c512cf4a798daf08790a5631c2" contextRef="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember" unitRef="U004" decimals="3">0.974</us-gaap:ConcentrationRiskPercentage1>
  <!--Concentration of credit risk-Accounts Receivable [Member]-->
  <us-gaap:ConcentrationRiskPercentage1 id="Fact_e3b19d0e682c44e38055ae89da234bb4" contextRef="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember" unitRef="U004" decimals="3">0.627</us-gaap:ConcentrationRiskPercentage1>
  <!--Concentration Risk, Credit Risk, Policy [Policy Text Block]-->
  <us-gaap:ConcentrationRiskCreditRisk id="Fact_289fdbb7191b402cbf17e7ce5afc7c84" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Concentration of Credit Risk&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The Company is potentially subject to concentrations of credit risks in its accounts receivable. For the three months ended March 31, 2020 and 2019, the Company&amp;#8217;s three largest customers for the period accounted for 97.4%&amp;#160; and 62.7% of revenue.&amp;#160; As of March 31, 2020 and December 31, 2019 the Company&amp;#8217;s three largest customers accounted for 76.1% and 67.7% respectively, of the Company&amp;#8217;s accounts receivables. The Company believes that the receivable balances from these largest customers do not represent a significant credit risk based on past collection experience.&lt;/div&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
  <!--Construction in progress-->
  <us-gaap:ConstructionInProgressGross id="Fact_07aa0c709c8247fca2ea319d479528aa" contextRef="c20191231" unitRef="U002" decimals="-3">601000</us-gaap:ConstructionInProgressGross>
  <!--Construction in progress-->
  <us-gaap:ConstructionInProgressGross id="Fact_b71b099915c041a6b0c190af296276b3" contextRef="c20200331" unitRef="U002" decimals="-3">598000</us-gaap:ConstructionInProgressGross>
  <!--Contract with Customer, Liability, Current-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_711cc5cb94f94f0baf5ac95cc43fff0b" contextRef="c20200331" unitRef="U002" decimals="-3">9236000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Contract with Customer, Liability, Current-->
  <us-gaap:ContractWithCustomerLiabilityCurrent id="Fact_808ce1aa92c84a37942a826e3bf6e3a6" contextRef="c20191231" unitRef="U002" decimals="-3">9129000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <!--Commitments-->
  <us-gaap:ContractualObligation id="Fact_53c163921f164eb3a9e0a463b069d314" contextRef="c20200331" unitRef="U002" decimals="-3">636000</us-gaap:ContractualObligation>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_76c179a211c1442bbdd6748fe01d39b6" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">14120000</us-gaap:CostOfRevenue>
  <!--Cost of revenue-->
  <us-gaap:CostOfRevenue id="Fact_9d0fd3b3c8384d959639fd2e9a5a34f3" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">11653000</us-gaap:CostOfRevenue>
  <!--Current Income Tax Expense (Benefit)-->
  <us-gaap:CurrentIncomeTaxExpenseBenefit id="Fact_3597f5e79ea94007aeea9fcecafb43fa" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <!--Current Income Tax Expense (Benefit)-->
  <us-gaap:CurrentIncomeTaxExpenseBenefit id="Fact_a9c1e33469f14dbaa565f95781dabbb6" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">267000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <!--Current State and Local Tax Expense (Benefit)-->
  <us-gaap:CurrentStateAndLocalTaxExpenseBenefit id="Fact_ef616e7d677348d3a8a717ac70883b8d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">0</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
  <!--Current State and Local Tax Expense (Benefit)-->
  <us-gaap:CurrentStateAndLocalTaxExpenseBenefit id="Fact_b584528c34b944a29beecc11579271bb" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
  <!--Current Foreign Tax Expense (Benefit)-->
  <us-gaap:CurrentForeignTaxExpenseBenefit id="Fact_ff12b5533fd84ced8407ce60cc4da0e8" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:CurrentForeignTaxExpenseBenefit>
  <!--Current Foreign Tax Expense (Benefit)-->
  <us-gaap:CurrentForeignTaxExpenseBenefit id="Fact_5319a13b061d43a69b85fb4f2eecbcfc" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">257000</us-gaap:CurrentForeignTaxExpenseBenefit>
  <!--Current Federal Tax Expense (Benefit)-->
  <us-gaap:CurrentFederalTaxExpenseBenefit id="Fact_e2c3c04e305e46d5aa7ff370c586d3fc" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">10000</us-gaap:CurrentFederalTaxExpenseBenefit>
  <!--Current Federal Tax Expense (Benefit)-->
  <us-gaap:CurrentFederalTaxExpenseBenefit id="Fact_90802389119848338ca508f1cdeeb712" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:CurrentFederalTaxExpenseBenefit>
  <!--Debt Instrument, Face Amount-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentFaceAmount id="Fact_270ba954e0b141da922082c413066a1d" contextRef="c20180330_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">2981000</us-gaap:DebtInstrumentFaceAmount>
  <!--Debt Instrument, Interest Rate, Stated Percentage-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentInterestRateStatedPercentage id="Fact_c6b67e20cc2a4dd3a4cea26c942198c3" contextRef="c20180330_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U004" decimals="INF">0.0301</us-gaap:DebtInstrumentInterestRateStatedPercentage>
  <!--Debt Instrument, Maturity Date-Line of Credit 2 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_2274a760528448839d2896f4d346c271" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit2Member">2020-02-21</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 5 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_27ed7177b6b045749f3599ad4d83cbd2" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit5Member">2020-02-14</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 9 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_5970cdf03df94be5903a63d89ec53dfb" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit9Member">2020-07-11</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 4 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_7da2d5323757410d917f423e1370a150" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit4Member">2020-01-22</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 1 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_8d1c614a87e8480d8872d9598d577980" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit1Member">2020-01-23</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 6 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_959b4eeb4ca74c3cbfb2327ee9567057" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit6Member">2020-03-24</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 7 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_a2ca7c1e1596488d986da746bbf2e4ac" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit7Member">2020-04-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 8 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_d3fe5a1547774fcd9dc9a0052450fc67" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit8Member">2020-08-24</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Line of Credit 3 [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_d41b3fe799974c6c8c3e3c9e00bd22e4" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit3Member">2020-01-19</us-gaap:DebtInstrumentMaturityDate>
  <!--Debt Instrument, Maturity Date-Senior Notes [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:DebtInstrumentMaturityDate id="Fact_4b6b4b9814f1477b899bcbc79989b36e" contextRef="c20200101to20200331_LongtermDebtTypeAxis_SeniorNotesMember_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">2023-08-17</us-gaap:DebtInstrumentMaturityDate>
  <!--Deferred tax assets (note 15)-->
  <us-gaap:DeferredIncomeTaxAssetsNet id="Fact_dbbb2f8a93cf41e58b083b2430e979fe" contextRef="c20191231" unitRef="U002" decimals="-3">5331000</us-gaap:DeferredIncomeTaxAssetsNet>
  <!--Deferred tax assets (note 15)-->
  <us-gaap:DeferredIncomeTaxAssetsNet id="Fact_f268af8bcb7e401988fa3d1990caa813" contextRef="c20200331" unitRef="U002" decimals="-3">5212000</us-gaap:DeferredIncomeTaxAssetsNet>
  <!--Deferred Federal, State and Local, Tax Expense (Benefit)-->
  <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit id="Fact_f9fcdbe1849f46ebb25f1f26ee166f29" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">119000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
  <!--Deferred Federal, State and Local, Tax Expense (Benefit)-->
  <us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit id="Fact_bcc0972d81e748cda5ac99c65963876d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">37000</us-gaap:DeferredFederalStateAndLocalTaxExpenseBenefit>
  <!--Deferred Federal Income Tax Expense (Benefit)-->
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit id="Fact_45b0622208be4dce9aa821f1e4bc4ec4" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <!--Deferred Federal Income Tax Expense (Benefit)-->
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit id="Fact_7d087a7efba542d9b283205e0d356cac" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">28000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_46abef5cbc284c4e9df78f4deadb5e6c" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">35000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred income taxes-->
  <us-gaap:DeferredIncomeTaxExpenseBenefit id="Fact_9463ebad1d3147d7915b1e5c5b6a6a28" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <!--Deferred Foreign Income Tax Expense (Benefit)-->
  <us-gaap:DeferredForeignIncomeTaxExpenseBenefit id="Fact_7cfa9772b2bb4906a7114bdf760819e6" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">119000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
  <!--Deferred Foreign Income Tax Expense (Benefit)-->
  <us-gaap:DeferredForeignIncomeTaxExpenseBenefit id="Fact_a5ab45a2c7564977b738aec299b66215" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">9000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
  <!--Deferred State and Local Income Tax Expense (Benefit)-->
  <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit id="Fact_0256c575397f40aeafa88d26e909d364" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
  <!--Deferred State and Local Income Tax Expense (Benefit)-->
  <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit id="Fact_25f9e0999496432cb8cf92ae4cd7544c" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_ceaf4916a1974da0b122623bb248beab" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">191000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation and amortization-->
  <us-gaap:DepreciationAndAmortization id="Fact_ead90108be684e5a9f00d0e46cb2e4cb" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">212000</us-gaap:DepreciationAndAmortization>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_4855b98662014ce8a0ea56d322589e05" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">175000</us-gaap:Depreciation>
  <!--Depreciation expense-->
  <us-gaap:Depreciation id="Fact_b75f1036fbe14a2486b8cbebf1906b86" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">185000</us-gaap:Depreciation>
  <!--Share-based Payment Arrangement [Text Block]-->
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock id="Fact_dc7488568cc342ea9d22aaca234308a4" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 14&amp;#8211; STOCK-BASED COMPENSATION&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;ACM&amp;#8217;s stock-based compensation consists of employee and non-employee awards issued under the 1998 Stock Option Plan, the 2016 Omnibus Incentive Plan and as standalone options. In January 2020, ACM Shanghai, adopted a 2019 Stock Option Incentive Plan (the &amp;#8220;Subsidiary Stock Option Plan&amp;#8221;) which provides for, among other incentives, the granting to officers, directors, employees of ACM Shanghai options to purchase shares in ACM Shanghai&amp;#8217;s common stock. The fair value of the stock options granted is estimated at the date of grant using the Black-Scholes option pricing model using assumptions generally consistent with those used for Company stock options. Because ACM Shanghai is not publicly traded, the expected volatility is estimated with reference to the average historical volatility of a group of publicly traded companies that are believed to have similar characteristics to ACM Shanghai.&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="color: #000000;"&gt;The following table summarizes the components of stock-based compensation expense included in the consolidated statements of operations:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: #000000; 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: 46%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Three Months Ended March 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; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Stock-Based Compensation Expense:&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: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Cost of revenue&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;30&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Sales and marketing expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;94&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;34&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Research and development expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;187&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;86&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;General and administrative expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&gt;363&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;594&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;689&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;744&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&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: 70%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Three Months Ended March 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; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Stock-based compensation expense by type:&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: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Employee stock purchase plan&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;431&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;221&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Non-employee stock purchase plan&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;172&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;523&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Subsidiary option grants&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;86&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;689&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;744&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Employee Awards&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the Company&amp;#8217;s employee share option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: #000000; 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: 30%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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;Number of&lt;br /&gt; Option Share&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: center; 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%; text-align: center;"&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="text-align: center; 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%; text-align: center;"&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;&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" nowrap="nowrap" valign="bottom" style="text-align: center; vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2,994,063&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.59&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;6.77&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;7.05 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;20,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;9.11&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;22.95&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(26,032&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.31&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;3.60&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(22,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;6.46&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;16.74&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2,966,031&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.61&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;6.83&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000; font-weight: bold;"&gt;6.81 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,859,052&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: 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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="background-color: #FFFFFF;"&gt;During the three months ended March 31, 2020 and 2019, the Company recognized employee stock-based compensation expense $431 and $221, respectively. As of March 31, 2020 and December 31, 2019, $4,317 and $4,712, 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.29 years and 1.47 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Non-employee Awards&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the Company&amp;#8217;s non-employee stock option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&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: bottom; padding-bottom: 2px; width: 30%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; 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="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: #000000; 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="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: #000000; font-weight: bold;"&gt;Weighted&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Average&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Exercise&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Price&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 valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Weighted Average &lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Remaining &lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;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;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1,101,613&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: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;0.82&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: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.69&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;5.85&amp;#160;years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;20,000&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;10.29&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;25.60&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 valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(44,446&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;&lt;div style="color: #000000;"&gt;)&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.44&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.82&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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);"&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: #FFFFFF;"&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="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: #FFFFFF;"&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 valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: #CCEEFF;"&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;March 31,&amp;#160;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: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1,077,167&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;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1.01&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;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;3.15&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;5.75&amp;#160;years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,007,076&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: #CCEEFF;"&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: #CCEEFF;"&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="background-color: #FFFFFF;"&gt;During the three months ended March 31, 2020 and 2019,&lt;/font&gt; the Company recognized stock-based compensation expense of $172 and $&lt;font style="background-color: #FFFFFF;"&gt;523&lt;/font&gt;, respectively, related to share option grants. &lt;font style="background-color: #FFFFFF;"&gt; As of March 31, 2020 and December 31, 2019, $419 and $406, 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.22 years and 0.23 years, respectively. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Subsidiary Option Grants&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the ACM Shanghai employee stock option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&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: 30%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; text-align: center;"&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 in&lt;br /&gt; ACM Shanghai&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: center; 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%; text-align: center;"&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="text-align: center; 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%; text-align: center;"&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;&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" nowrap="nowrap" valign="bottom" style="text-align: center; vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,869,808&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.22&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(192,308&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.23&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;5,677,500&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;0.22&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000; font-weight: bold;"&gt;4.26 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="background-color: #FFFFFF;"&gt;During the three months ended March 31, 2020,&lt;/font&gt; the Company recognized stock-based compensation expense of $86 related to stock option grants of ACM Shanghai. &lt;font style="background-color: #FFFFFF;"&gt; As of March 31, 2020 $1,106 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 3.26 years. Total recognized compensation cost may be adjusted for future changes in estimated forfeitures.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_4f7bd36898f04f598f3af168804e0198" contextRef="c20190101to20190331" unitRef="U003" decimals="2">0.10</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Diluted-->
  <us-gaap:EarningsPerShareDiluted id="Fact_609318ca9c8d4a1e815ee340f3c1f726" contextRef="c20200101to20200331" unitRef="U003" decimals="2">0.08</us-gaap:EarningsPerShareDiluted>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_1eb3fa6cf22647aa9a399bb9890ebe4d" contextRef="c20190101to20190331" unitRef="U003" decimals="2">0.12</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Basic-->
  <us-gaap:EarningsPerShareBasic id="Fact_84dc2ba436e9440eacfc8b34ca7fe6e2" contextRef="c20200101to20200331" unitRef="U003" decimals="2">0.09</us-gaap:EarningsPerShareBasic>
  <!--Earnings Per Share, Policy [Policy Text Block]-->
  <us-gaap:EarningsPerSharePolicyTextBlock id="Fact_54d42608274346b393d9475eb4436a85" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Basic and Diluted Net Income per Common Share&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; 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: 56%; text-indent: -9pt; margin-left: 9pt;"&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="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: #000000; font-weight: bold;"&gt;Three Months Ended March 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: bottom; padding-bottom: 2px; width: 56%; text-indent: -9pt; margin-left: 9pt;"&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; 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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Numerator:&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: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,963&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,857&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&gt;Net income attributable to redeemable non-controlling interest&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;258&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,705&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;1,857&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: #CCEEFF;"&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(255, 255, 255); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,120,363&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;16,044,655&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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(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: #000000;"&gt;2,946,273&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: #000000;"&gt;2,180,662&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: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;21,066,636&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,225,317&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: #CCEEFF;"&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); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.09&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.12&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.08&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.10&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 months ended March 31, 2020 and 2019, 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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 of warrants and stock options for the three months ended March 31, 2020 and 2019.&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_262a95bb6ddd4cc595aacaab4c55b861" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">280000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Effect of exchange rate changes on cash, cash equivalents and restricted cash-->
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents id="Fact_5008a24d687c4d10b79bf6ef9b75d4aa" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-1002000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
  <!--Foreign corporate tax rate-Foreign Tax Authority [Member]-Maximum [Member]-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential id="Fact_fdc5996986ee4118a7d1f2380967a63d" contextRef="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MaximumMember" unitRef="U004" decimals="INF">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
  <!--Foreign corporate tax rate-Foreign Tax Authority [Member]-Minimum [Member]-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential id="Fact_6a0496352b444e958409d30a12448499" contextRef="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember_RangeAxis_MinimumMember" unitRef="U004" decimals="INF">0.15</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
  <!--Statutory U.S federal income tax rate-->
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate id="Fact_d3e726768baa4fb1b00984894e335c17" contextRef="c20200101to20200331" 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_0904919d8934446a8a18049450054e03" contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">406000</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_eb6ec871fef54d23a1fd4db256e79751" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">4317000</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_692a30485888447baed357b1fa5fb752" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U002" decimals="-3">419000</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_74fd87ec90104179ba550abc511fa792" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-3">4712000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <!--Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount-Share-based Payment Arrangement, Non Employee Stock Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized id="Fact_7c6d5040468e4218a731aef7f8f201fb" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">1106000</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_02af2322d07b4038822b63dde6ad7b7a" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember">P1Y3M14D</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_1088f9e2832a4d908240e0e9ed28a40e" contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember">P1Y5M19D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Weighted-average period over which unrecognized compensation is expected to be recognized-Share-based Payment Arrangement, Non Employee Stock Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 id="Fact_ef7583df12604990a79c9d05bab8e7ea" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P3Y3M4D</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_fb8f724be4f24b12ac6eb31ed0d1f4fc" contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P0Y2M23D</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_8bb66e2a442941c2b825b2fb738c345e" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P0Y2M19D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <!--Accrued payroll-->
  <us-gaap:EmployeeRelatedLiabilitiesCurrent id="Fact_33ee753a54064183a78a02200931e0a3" contextRef="c20191231" unitRef="U002" decimals="-3">2092000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <!--Accrued payroll-->
  <us-gaap:EmployeeRelatedLiabilitiesCurrent id="Fact_ba09d352b96444d4bef429cf80e29c96" contextRef="c20200331" unitRef="U002" decimals="-3">2775000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <!--Purchase price-Ninebell Company Limited [Member]-Common Class A [Member]-->
  <us-gaap:EquityMethodInvestmentAggregateCost id="Fact_dfba4e267fcf4202a787d263f48217e2" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">1000000</us-gaap:EquityMethodInvestmentAggregateCost>
  <!--Purchase price-Ninebell Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentAggregateCost id="Fact_eaf803500e0049d4823669b0db59303e" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U002" decimals="-3">1200000</us-gaap:EquityMethodInvestmentAggregateCost>
  <!--Percentage of ordinary shares issued-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:EquityMethodInvestmentOwnershipPercentage id="Fact_c6a907d178cc47c9baa011fb68fc09cb" 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_d64671e19a534a45affd9ef910fcc65b" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U004" decimals="1">0.2</us-gaap:EquityMethodInvestmentOwnershipPercentage>
  <!--Investment - equity method-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:EquityMethodInvestments id="Fact_c6a5bc95dadd475d828e91bef80a88e3" contextRef="c20190627_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U002" decimals="-3">109000</us-gaap:EquityMethodInvestments>
  <!--Finite-Lived Intangible Assets, Net-->
  <us-gaap:FiniteLivedIntangibleAssetsNet id="Fact_90ac0b65f41a450ba20d8a5cb1b2cc27" contextRef="c20191231" unitRef="U002" decimals="-3">344000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <!--Finite-Lived Intangible Assets, Net-->
  <us-gaap:FiniteLivedIntangibleAssetsNet id="Fact_e17e0334cb8e46cbb9f4983de58771e9" contextRef="c20200331" unitRef="U002" decimals="-3">307000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_93599e9f63c6491a90d5c53d9adbe209" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1941000</us-gaap:GeneralAndAdministrativeExpense>
  <!--General and administrative-->
  <us-gaap:GeneralAndAdministrativeExpense id="Fact_ab7f47bdda324bb4accfcab5478343cb" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">2328000</us-gaap:GeneralAndAdministrativeExpense>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_94def5e42ef649f39abcba463bc9ce4b" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">8826000</us-gaap:GrossProfit>
  <!--Gross Profit-->
  <us-gaap:GrossProfit id="Fact_cf1ed2ebdbc541049b8a26f1f5b0e22a" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">10228000</us-gaap:GrossProfit>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_4cee2e93f33a434684414c588ff15ccf" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">2267000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest-->
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest id="Fact_64245e2acf8747839587f5f1c7e6be75" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1976000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_09ffdb1e728246a2a201298736caef7c" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">116000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income (Loss) from Equity Method Investments-->
  <us-gaap:IncomeLossFromEquityMethodInvestments id="Fact_d82e5b89f2c64a1588814278a3438efd" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">148000</us-gaap:IncomeLossFromEquityMethodInvestments>
  <!--Income Tax Disclosure [Text Block]-->
  <us-gaap:IncomeTaxDisclosureTextBlock id="Fact_fff15d2ae50041ef8f290286b991dcb6" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="font-weight: bold;"&gt;NOTE 15 &amp;#8211; INCOME TAXES&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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; Since September 30, 2019, the Company has not maintained a valuation allowance except for a partial valuation allowance on certain U.S. deferred tax assets.&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&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 months ended March 31, 2020.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #000000;"&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&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 expense of $304 and $119 during the three months ended March 31, 2020 and 2019, respectively.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;As of March 31, 2020, the Company&amp;#8217;s total unrecognized tax benefits were $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 months ended March 31, 2020.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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, 2019. 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&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Income Tax Expense&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following presents components of income tax expense for the indicated periods:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; font-style: italic;"&gt;(in thousands)&lt;/div&gt;&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: middle;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&gt;Current:&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;/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: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;federal&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(10&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;state&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Foreign&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 style="color: #000000;"&gt;(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); padding-bottom: 2px;"&gt;&lt;div style="color: #000000;"&gt;)&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;-&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: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Total current tax expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(267&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&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: #FFFFFF;"&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: -9pt; margin-left: 9pt;"&gt;Deferred:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;federal&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(28&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;state&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Foreign&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: #000000;"&gt;(9&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;&lt;div style="color: #000000;"&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); 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&gt;(119&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;&lt;div&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: -9pt; margin-left: 27pt;"&gt;Total deferred tax benefit&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(37&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;(119&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: #CCEEFF;"&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: 76%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Total&amp;#160; income tax expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;(304&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: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;(119&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: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Our 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 as it pertains to book-tax differences in the value of client equity securities received for services. Our two PRC subsidiaries, ACM Shanghai and ACM Wuxi, are liable for PRC corporate income taxes at the rates of 15% and 25%, respectively. Pursuant to the Corporate Income Tax Law of the PRC, ACM&amp;#8217;s PRC subsidiaries generally would be liable for PRC corporate income taxes as a rate of 25%. According to Guoshuihan 2009 No. 203, an entity certified as an &amp;#8220;advanced and new technology enterprise&amp;#8221; is entitled to a preferential income tax rate of 15%. ACM Shanghai was certified as an &amp;#8220;advanced and new technology enterprise&amp;#8221; in 2012 and again in 2016 and 2018, with an effective period of three years.&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;We file income tax returns in the United States and state and foreign jurisdictions. Those federal, state and foreign income tax returns are under the statute of limitations subject to tax examinations for 2009 through 2016. To the extent we have tax attribute carryforwards, the tax years in which the attribute was generated may still be adjusted upon examination by the Internal Revenue Service or state or foreign tax authorities to the extent utilized in a future period.&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The Coronavirus Aid, Relief, and Economic Security Act (CARES Act) was enacted on March 27, 2020. It contains several provisions that may have financial statement effects. Key aspects of the CARES Act include the following:&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right; color: #000000;"&gt;&amp;#8226;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="color: #000000;"&gt;Repealed the 80% taxable income limitation for 2018, 2019 and 2020. Also allows those years to be carried back up to five years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right; color: #000000;"&gt;&amp;#8226;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="color: #000000;"&gt;Allows corporations to claim 100% of AMT credits in 2019.&amp;#160; It also provides for an election to take the entire refundable credit amount in 2018&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right; color: #000000;"&gt;&amp;#8226;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="color: #000000;"&gt;Section 163(j) ATI limit raised from 30% to 50% for businesses&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;&lt;tr&gt;&lt;td style="width: 18pt; vertical-align: top; align: right; color: #000000;"&gt;&amp;#8226;&lt;/td&gt;&lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="color: #000000;"&gt;Technical corrections to TCJA for Qualified Improvement Property (&amp;#8220;QIP&amp;#8221;). Designates as 15-year property for depreciation purposes, which makes QIP a category eligible for 100% bonus depreciation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="color: #000000;"&gt;The CARES Act is not expected have a material impact on income taxes in the Company&amp;#8217;s financial statements.&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <!--Income Tax Expense (Benefit)-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_2602cc9b3a5a4b1a8ad2f6937d97ae51" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">119000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income Tax Expense (Benefit)-->
  <us-gaap:IncomeTaxExpenseBenefit id="Fact_3b2b75eecb3c441da0c65defb23d160a" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">304000</us-gaap:IncomeTaxExpenseBenefit>
  <!--Income Tax Examination, Penalties and Interest Expense-->
  <us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense id="Fact_76574232e7524e13840902e44be4377e" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">0</us-gaap:IncomeTaxExaminationPenaltiesAndInterestExpense>
  <!--Increase (Decrease) in Other Noncurrent Liabilities-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities id="Fact_ef1dd6c33ebf4351a9cd92b7e9485106" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-1373000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
  <!--Increase (Decrease) in Other Noncurrent Liabilities-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities id="Fact_f0c8b40457ad4ffd8bb080ddd07d1f9b" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">1715000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
  <!--Advances from customers-->
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability id="Fact_688dd30afb8647329c507cd958cb15e8" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">45000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <!--Advances from customers-->
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability id="Fact_da53f167b7dd4e4c8094a1c57322c05c" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">195000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <!--Increase (Decrease) in Other Noncurrent Assets-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets id="Fact_7e51cb25304c4433ad556c5eafe0a747" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-36000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
  <!--Increase (Decrease) in Other Noncurrent Assets-->
  <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets id="Fact_85cd816fba784f59ab9af1ff179712eb" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_24bb41c4553140aa8debba50b808ec37" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-3757000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Increase (Decrease) in Accounts Payable-->
  <us-gaap:IncreaseDecreaseInAccountsPayable id="Fact_7e77fb4f0fb74b1792a633ff0d78b9c9" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">5617000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <!--Income tax payable-->
  <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable id="Fact_a64aa76a71e94b89a4e42b6cbf804741" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">15000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
  <!--Income tax payable-->
  <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable id="Fact_b39aa996ae9e4a85b2c88a7710c29325" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">263000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
  <!--Increase (Decrease) in Accounts Receivable-->
  <us-gaap:IncreaseDecreaseInAccountsReceivable id="Fact_075e2eae7e5b4e86a62fd402f3816f10" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">6902000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <!--Increase (Decrease) in Accounts Receivable-->
  <us-gaap:IncreaseDecreaseInAccountsReceivable id="Fact_97038761cf004546862c7d3ac7311991" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-99000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <!--Other payables and accrued expenses-->
  <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities id="Fact_20d983dbca1043899faadd948478012e" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1013000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
  <!--Other payables and accrued expenses-->
  <us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities id="Fact_79de2fdd8eed4096a46cac509f8a8a80" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">1779000</us-gaap:IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities>
  <!--Increase (Decrease) in Other Receivables-->
  <us-gaap:IncreaseDecreaseInOtherReceivables id="Fact_a41d2a2067f64cf5bb87f78b653cce29" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-669000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <!--Increase (Decrease) in Other Receivables-->
  <us-gaap:IncreaseDecreaseInOtherReceivables id="Fact_ca1dfb95cf714d6ba5b43a05328dd7f4" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">683000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_26106deab495419e81816d42ef8f4e2c" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2759000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Inventories-->
  <us-gaap:IncreaseDecreaseInInventories id="Fact_fe50b986d8a7464c97ab1d9c9098376f" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">931000</us-gaap:IncreaseDecreaseInInventories>
  <!--Increase (Decrease) in Prepaid Expense-->
  <us-gaap:IncreaseDecreaseInPrepaidExpense id="Fact_ada476fde0d44975aacc753b187656ed" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">11000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <!--Increase (Decrease) in Prepaid Expense-->
  <us-gaap:IncreaseDecreaseInPrepaidExpense id="Fact_f0b099af3c5e435cab1c75c7dc25ac5b" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-190000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_43625c6b3ab746e491da7806180db098" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">111000</us-gaap:InterestExpense>
  <!--Interest Expense-->
  <us-gaap:InterestExpense id="Fact_f65bd928e7804841b52f75c87a94e5ea" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">139000</us-gaap:InterestExpense>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_6af9bd21008340b8953783dcc9410655" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">139000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest Expense, Short-term Borrowings-->
  <us-gaap:InterestExpenseShortTermBorrowings id="Fact_ea5001201dea49969288a0e8e9c52a44" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">111000</us-gaap:InterestExpenseShortTermBorrowings>
  <!--Interest paid-->
  <us-gaap:InterestPaidNet id="Fact_47ec6f1acd1f4d6f8b7097978d4dcd51" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">111000</us-gaap:InterestPaidNet>
  <!--Interest paid-->
  <us-gaap:InterestPaidNet id="Fact_59d6a47edb9141fa9437324af83e30a6" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">139000</us-gaap:InterestPaidNet>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoods id="Fact_d62fca6672c44afe948ac5a521f979a8" contextRef="c20191231" unitRef="U002" decimals="-3">19284000</us-gaap:InventoryFinishedGoods>
  <!--Finished goods-->
  <us-gaap:InventoryFinishedGoods id="Fact_d7a8b528f66743c9aacd39244be8d084" contextRef="c20200331" unitRef="U002" decimals="-3">11569000</us-gaap:InventoryFinishedGoods>
  <!--Inventory Disclosure [Text Block]-->
  <us-gaap:InventoryDisclosureTextBlock id="Fact_18a0e858d0894239a7003d14a521596d" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 4 &amp;#8211; INVENTORIES&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, inventory consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&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; text-indent: -9pt; margin-left: 9pt; width: 66%;"&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;15,796&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;15,105&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;17,622&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;10,407&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;11,569&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;19,284&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&amp;#160;inventory&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;44,987&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;44,796&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;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, Gross-->
  <us-gaap:InventoryGross id="Fact_e0a0c6275bd641f1a707ea2d17bd0c13" contextRef="c20200331" unitRef="U002" decimals="-3">44987000</us-gaap:InventoryGross>
  <!--Inventory, Gross-->
  <us-gaap:InventoryGross id="Fact_f1679c4e943a43ef9ffebecf2bf89637" contextRef="c20191231" unitRef="U002" decimals="-3">44796000</us-gaap:InventoryGross>
  <!--Raw materials-->
  <us-gaap:InventoryRawMaterials id="Fact_2b66cdfb40414d6d98a9d1ccb78fde9a" contextRef="c20200331" unitRef="U002" decimals="-3">15796000</us-gaap:InventoryRawMaterials>
  <!--Raw materials-->
  <us-gaap:InventoryRawMaterials id="Fact_9332cd3eb34b4e1fb955a1f3986e82ba" contextRef="c20191231" unitRef="U002" decimals="-3">15105000</us-gaap:InventoryRawMaterials>
  <!--Inventories (note 4)-->
  <us-gaap:InventoryNet id="Fact_0e200feb4d2b4ad58183035e7e6d73ff" contextRef="c20200331" unitRef="U002" decimals="-3">44987000</us-gaap:InventoryNet>
  <!--Inventories (note 4)-->
  <us-gaap:InventoryNet id="Fact_e507c92c9dfa4d8f97b53616e9bc72eb" contextRef="c20191231" unitRef="U002" decimals="-3">44796000</us-gaap:InventoryNet>
  <!--Work in process-->
  <us-gaap:InventoryWorkInProcess id="Fact_2ad7685fcdc64f19b31042898a1449f1" contextRef="c20191231" unitRef="U002" decimals="-3">10407000</us-gaap:InventoryWorkInProcess>
  <!--Work in process-->
  <us-gaap:InventoryWorkInProcess id="Fact_94764ab35a22413d817a9d645605e47c" contextRef="c20200331" unitRef="U002" decimals="-3">17622000</us-gaap:InventoryWorkInProcess>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_a9f3fd7c0aa94fb081c85d7c65901cb4" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">335000</us-gaap:InvestmentIncomeInterest>
  <!--Interest income-->
  <us-gaap:InvestmentIncomeInterest id="Fact_f00bc67550eb4a4b817dbde4fef4b4a6" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">9000</us-gaap:InvestmentIncomeInterest>
  <!--Long-term investments (note 10)-->
  <us-gaap:Investments id="Fact_282a60f3f49a4e328a83d11a647abda1" contextRef="c20200331" unitRef="U002" decimals="-3">6015000</us-gaap:Investments>
  <!--Long-term investments (note 10)-->
  <us-gaap:Investments id="Fact_774193c417d147fcb2deaa2b1cf45f35" contextRef="c20191231" unitRef="U002" decimals="-3">5934000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership [Member]-->
  <us-gaap:Investments id="Fact_32e537e8aef640999785054b731644cc" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember" unitRef="U002" decimals="-3">4289000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Ninebell Company Limited [Member]-->
  <us-gaap:Investments id="Fact_3a8dcab580764320b29bee97a7d8a4d3" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U002" decimals="-3">1538000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Ninebell Company Limited [Member]-->
  <us-gaap:Investments id="Fact_607d7c56c0e94458baa38b9506db0894" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember" unitRef="U002" decimals="-3">1694000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership [Member]-->
  <us-gaap:Investments id="Fact_7ed3ca6ff85e4c9d8575ccadcaeffc84" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember" unitRef="U002" decimals="-3">4212000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:Investments id="Fact_b1509f7e98a14334aae038239762f99c" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U002" decimals="-3">109000</us-gaap:Investments>
  <!--Long-term investments (note 10)-Shengyi Semiconductor Technology Company Limited [Member]-->
  <us-gaap:Investments id="Fact_b50fc62d244242ef81f5298563c665fe" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U002" decimals="-3">107000</us-gaap:Investments>
  <!--Lessee, Operating Leases [Text Block]-->
  <us-gaap:LesseeOperatingLeasesTextBlock id="Fact_9357eb52536346568b92acb992f8547f" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 8 &amp;#8211;LEASES&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="color: #000000;"&gt;The components of lease expense were as follows:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/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: -9pt; margin-left: 9pt;"&gt;Operating lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;377&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;437&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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&gt;50&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: #000000;"&gt;18&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: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;427&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;455&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="color: #000000;"&gt;Supplemental cash flow information related to operating leases was as follows for the period ended March 31, 2020 and 2019 respectively:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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;"&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: middle; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;427&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;455&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="color: #000000;"&gt;Maturities of lease liabilities for all operating leases were as follows as of March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; 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: 48%;"&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&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: right; 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: -9pt; margin-left: 9pt;"&gt;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;1,128&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&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: #FFFFFF;"&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: -9pt; margin-left: 9pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&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: #CCEEFF;"&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: -9pt; margin-left: 9pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&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: #CCEEFF;"&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: -9pt; margin-left: 9pt;"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;4,177&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;(630&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: #CCEEFF;"&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: 48%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,547&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #000000;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; 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" 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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;March 31, 2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;December 31, 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Remaining lease term and discount rate:&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;/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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Weighted average remaining lease term (years)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;2.80&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;3.02&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;5.43&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;5.43&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <!--Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths id="Fact_2dc8746a1ca845fca6ecf8fa4b339f65" contextRef="c20200331" unitRef="U002" decimals="-3">1488000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Four-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour id="Fact_c17f37f0b8e04ba881392a600663477f" contextRef="c20200331" unitRef="U002" decimals="-3">13000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <!--Lessee, Operating Lease, Liability, Payments, Due-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue id="Fact_609715be55e247f7b0c7aa880eae8efd" contextRef="c20200331" unitRef="U002" decimals="-3">4177000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <!--Lessee, Operating Lease, Liability, Maturity [Table Text Block]-->
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock id="Fact_e1755351494546c291b61ab5905dd761" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;Maturities of lease liabilities for all operating leases were as follows as of March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; 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: 48%;"&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&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: right; 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: -9pt; margin-left: 9pt;"&gt;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;1,128&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&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: #FFFFFF;"&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: -9pt; margin-left: 9pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&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: #CCEEFF;"&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: -9pt; margin-left: 9pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;53&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&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: #CCEEFF;"&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: -9pt; margin-left: 9pt;"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;4,177&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 48%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;(630&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: #CCEEFF;"&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: 48%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,547&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <!--2020-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear id="Fact_ba6ef7668f304f5dadf20d4bdf1e84a9" contextRef="c20200331" unitRef="U002" decimals="-3">1128000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
  <!--Lessee, Operating Lease, Liability, Undiscounted Excess Amount-->
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount id="Fact_bed0a57fc1b244f78d87ec4166ab2e98" contextRef="c20200331" unitRef="U002" decimals="-3">630000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Three-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree id="Fact_0c4cc1f5b98d4c71acaa55e8e112f55f" contextRef="c20200331" unitRef="U002" decimals="-3">53000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <!--Lessee, Operating Lease, Liability, Payments, Due Year Two-->
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo id="Fact_4363029a4cf84d0a8132878cb4ac4357" contextRef="c20200331" unitRef="U002" decimals="-3">1495000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <!--Lease, Cost-->
  <us-gaap:LeaseCost id="Fact_bc48eb58b658426a8ad680582f7652cd" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">427000</us-gaap:LeaseCost>
  <!--Lease, Cost-->
  <us-gaap:LeaseCost id="Fact_c85f4f42866241b591d3a682b621f76f" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">455000</us-gaap:LeaseCost>
  <!--Lease, Cost [Table Text Block]-->
  <us-gaap:LeaseCostTableTextBlock id="Fact_c7c2911b227d4376a984378eaa15f019" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;The components of lease expense were as follows:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/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: -9pt; margin-left: 9pt;"&gt;Operating lease cost&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;377&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;437&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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&gt;50&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: #000000;"&gt;18&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: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;427&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;455&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_804ad16568f94d1f920a0fd7cda7c508" contextRef="c20200331" unitRef="U002" decimals="-3">58799000</us-gaap:Liabilities>
  <!--Liabilities-->
  <us-gaap:Liabilities id="Fact_9e44f7d3084b41e58d103cd48970af3f" contextRef="c20191231" unitRef="U002" decimals="-3">60220000</us-gaap:Liabilities>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_19acabeb40d547b0a237107db84c36cb" contextRef="c20191231" unitRef="U002" decimals="-3">217703000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities and Equity-->
  <us-gaap:LiabilitiesAndStockholdersEquity id="Fact_fac1b2f7b48645028f198b557a7201cf" contextRef="c20200331" unitRef="U002" decimals="-3">217208000</us-gaap:LiabilitiesAndStockholdersEquity>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_0ed1e1a3c6a647c38c9f55d199876573" contextRef="c20200331" unitRef="U002" decimals="-3">50767000</us-gaap:LiabilitiesCurrent>
  <!--Liabilities, Current-->
  <us-gaap:LiabilitiesCurrent id="Fact_eeb3ef23565240928dec8d0c21934f80" contextRef="c20191231" unitRef="U002" decimals="-3">53502000</us-gaap:LiabilitiesCurrent>
  <!--Maximum borrowing capacity-Line of Credit 3 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_124406fa8945465080c7507c00ddfea9" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 1 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_6f710dcb4df84b8598d0437b636ed2c7" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 6 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_a18b074c14bc456c8b8e6bd2589f2884" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 5 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_a31c43b48dfe4f61b86bb862477693b5" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 4 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_a7fe3ba5df44467b9ea74606c978761e" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 9 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_b1f174ce44474e1784e44a5d3b6dbc71" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U008" decimals="-3">500000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 2 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_d6bebe6a7fc04de988549199a1ec1122" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U005" decimals="-3">20000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 8 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_d70cb566f9b2487588407fe7be35f110" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Maximum borrowing capacity-Line of Credit 7 [Member]-->
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity id="Fact_e16fd1f4c3c34193bad3dcd4866737ab" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U005" decimals="-3">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <!--Annual interest rate-Line of Credit 5 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_328016251964456684f0330ebc493f64" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 2 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_3803c68242874ebb8cfe75c6a5ebfc7a" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 6 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_559817752dba4236abbbf4bd46930efc" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U004" decimals="4">0.0494</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 7 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_671901c279444775b7765853da3ba920" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 9 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_69b7e58bc11f4873ba1fd023ef317b10" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U004" decimals="4">0.0417</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 1 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_93b24cec444842e3aec8282dc2d55d59" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U004" decimals="4">0.0522</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 3 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_ba8913cf35c44000952a9cdd6e9ffc24" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 8 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_e8d2f5f50ca34a21aec377da15567449" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U004" decimals="4">0.0522</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Annual interest rate-Line of Credit 4 [Member]-->
  <us-gaap:LineOfCreditFacilityInterestRateDuringPeriod id="Fact_fc9ec7dba1524b64a0228bbca9300845" contextRef="c20200101to20200331_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U004" decimals="4">0.0566</us-gaap:LineOfCreditFacilityInterestRateDuringPeriod>
  <!--Loans, Notes, Trade and Other Receivables Disclosure [Text Block]-->
  <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock id="Fact_f0d9e121af6c4cbc942d0a7b6202cc58" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 3 &amp;#8211; ACCOUNTS RECEIVABLE&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, accounts receivable consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; 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: 36%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 36%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;37,260&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;31,091&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 36%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 36%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;37,260&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;31,091&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 March 31, 2020 or December 31, 2019. At March 31, 2020 and December 31, 2019, accounts receivable of $0 and $1,433, respectively, were pledged as collateral for borrowings from financial institutions.&lt;/div&gt;&lt;/div&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
  <!--Accounts receivable pledged as collateral for borrowings-->
  <us-gaap:LoansPledgedAsCollateral id="Fact_8a3cfef9ad1f4637b4c572c17fddf8fb" contextRef="c20200331" unitRef="U002" decimals="-3">0</us-gaap:LoansPledgedAsCollateral>
  <!--Accounts receivable pledged as collateral for borrowings-->
  <us-gaap:LoansPledgedAsCollateral id="Fact_b43aac9f013b40d8bbba3a931790413b" contextRef="c20191231" unitRef="U002" decimals="-3">1433000</us-gaap:LoansPledgedAsCollateral>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_617b4a4648f24a06b5d6d4593cffc476" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">258000</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Less: Net income attributable to redeemable non-controlling interests-->
  <us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest id="Fact_af921b83731043869aacac1fa2266a61" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLossAttributableToRedeemableNoncontrollingInterest>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_46dc68fb26684c97a8cec349892b7c86" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">3829000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Operating Activities-->
  <us-gaap:NetCashProvidedByUsedInOperatingActivities id="Fact_4f42cc78a17040c8a7575085b979fd0b" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-3182000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_030ad579f3a14363a4c764016fa6cc74" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-118000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Investing Activities-->
  <us-gaap:NetCashProvidedByUsedInInvestingActivities id="Fact_3e349130343a41c5b6cf99c0b0617af3" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-116000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_8598c95db25d46c6947df0e75c3168bb" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">3261000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Cash Provided by (Used in) Financing Activities-->
  <us-gaap:NetCashProvidedByUsedInFinancingActivities id="Fact_d4a79fb4eff3478ab2162ac0aa46983e" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-9559000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_19acd186d9ab4b6c90b7f20a3fcc1fe9" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">1705000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-->
  <us-gaap:NetIncomeLoss id="Fact_7e1e1ffbe30c461e8ec43a2f724c0f66" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1857000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_0d63c41d9212433399a251d3578c28ad" contextRef="c20200101to20200331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1705000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_38a1cdebb9b94d0c9796bc643813b683" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_67148b57fb984062bd63394bf8f3c3df" contextRef="c20200101to20200331_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_7ee7bde0a0a7472d8ae8f6d114e85447" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" 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_8fdbb5f1b6844ab89d3814829a1f9927" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassAMember_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_9f7d3a32de1c404fbca02fc7851a4e52" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_b12955ce10f0413e98e7b313df3c8a0f" contextRef="c20190101to20190331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">1857000</us-gaap:NetIncomeLoss>
  <!--Net Income (Loss) Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:NetIncomeLoss id="Fact_bcb1e9ff92004bd8bbe2e6d510499573" contextRef="c20200101to20200331_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_d946251d39c5451fb9ec8892dff83553" contextRef="c20200101to20200331_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_dd0942696edb477fbfd6587eef20e5ca" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">0</us-gaap:NetIncomeLoss>
  <!--Recent Accounting Pronouncements-->
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock id="Fact_60188651827547b1bf48e8de1ec0c707" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Recent Accounting Pronouncements&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In August 2018, the Financial Accounting Standards Board (the &amp;#8220;FASB&amp;#8221;) issued Accounting Standards Update (&amp;#8220;ASU&amp;#8221;) 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 adoption of ASU 2018-13 did not have a material impact on the Company&amp;#8217;s consolidated financial statements.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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. In October 2019, the FASB issued ASU 2019-10, &lt;font style="font-style: italic;"&gt;Financial Instruments &amp;#8211; Credit Losses (Topic 326), Derivatives and Hedging (Topic 815) and Leases (Topic 842), &lt;/font&gt;which defers the effective date for public filers that are considered small reporting companies as defined by the Securities and Exchange Commission to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years. Since the Company is a smaller reporting company, implementation is not needed until January 1, 2023. 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 is evaluating the impact of this standard on its consolidated financial statements, including accounting policies, processes, and systems, and expects the standard will have a minor impact on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In December 2019, the FASB issued ASU 2019-12, &lt;font style="font-style: italic;"&gt;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&lt;/font&gt;. ASU 2019-12 will simplify the accounting for income taxes by removing certain exceptions to the general principles in Topic 740. The amendments also improve consistent application of and simplify GAAP for other areas of Topic 740 by clarifying and amending existing guidance. For public business entities, the amendments in this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2020. For all other entities, the amendments are effective for fiscal years beginning after December 15, 2021, and interim periods within fiscal years beginning after December 15, 2022. The Company is evaluating the impact of the adoption of ASU 2019-12, but does not expect it to have a material impact on income taxes as reported in its consolidated financial statements.&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <!--Weighted average remaining lease term-->
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 id="Fact_5761a1dfc50049d0a67bbbeec4f377b1" contextRef="c20200331">P2Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <!--Weighted average remaining lease term-->
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 id="Fact_5841fa29dce54f499c20926d1aa3dde1" contextRef="c20191231">P3Y0M7D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <!--Operating lease right-of-use assets, net (note 8)-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_8b89ff54e00e4547ab0e8fd8bcc4a3ec" contextRef="c20200331" unitRef="U002" decimals="-3">3547000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating lease right-of-use assets, net (note 8)-->
  <us-gaap:OperatingLeaseRightOfUseAsset id="Fact_cfbf190ad26c44a5b8c5711f379448e4" contextRef="c20191231" unitRef="U002" decimals="-3">3887000</us-gaap:OperatingLeaseRightOfUseAsset>
  <!--Operating lease cost-->
  <us-gaap:OperatingLeaseCost id="Fact_be8ccc0b277b4b199b8a57166da7665f" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">437000</us-gaap:OperatingLeaseCost>
  <!--Operating lease cost-->
  <us-gaap:OperatingLeaseCost id="Fact_d84c7831b5254e109fd9212055a46ede" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">377000</us-gaap:OperatingLeaseCost>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_2a809d668a9c4ad2be500cc82d49a99a" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">6575000</us-gaap:OperatingExpenses>
  <!--Operating Expenses-->
  <us-gaap:OperatingExpenses id="Fact_ad3e412e03e7478c9da118719dc13473" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">9010000</us-gaap:OperatingExpenses>
  <!--Weighted average discount rate-->
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent id="Fact_110845287db54db4bbb0984b85607059" contextRef="c20191231" unitRef="U004" decimals="4">0.0543</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <!--Weighted average discount rate-->
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent id="Fact_1c8a533e440645c1b96d7ee5f9d10700" contextRef="c20200331" unitRef="U004" decimals="4">0.0543</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_28b427ee4045442092306c78682bc9d6" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2251000</us-gaap:OperatingIncomeLoss>
  <!--Operating Income (Loss)-->
  <us-gaap:OperatingIncomeLoss id="Fact_5cb4d5dcd40a4e74b30ed2733a42ed72" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">1218000</us-gaap:OperatingIncomeLoss>
  <!--Current portion of operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_e40349ec5e6147d0b11b23a489877151" contextRef="c20191231" unitRef="U002" decimals="-3">1355000</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Current portion of operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityCurrent id="Fact_f3ffccc9f7f9443eb981e3445dfbf5bf" contextRef="c20200331" unitRef="U002" decimals="-3">1345000</us-gaap:OperatingLeaseLiabilityCurrent>
  <!--Long-term operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_0de20fd26e124107aac8a2acfcf290c6" contextRef="c20191231" unitRef="U002" decimals="-3">2532000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Long-term operating lease liability (note 8)-->
  <us-gaap:OperatingLeaseLiabilityNoncurrent id="Fact_72efc00b70474a05836a84e6f06711bb" contextRef="c20200331" unitRef="U002" decimals="-3">2202000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <!--Operating cash outflow from operating leases-->
  <us-gaap:OperatingLeasePayments id="Fact_600c69d9ea1d49db86e761fd2a0213b6" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">427000</us-gaap:OperatingLeasePayments>
  <!--Operating cash outflow from operating leases-->
  <us-gaap:OperatingLeasePayments id="Fact_69b5cd1e9092423299b2322559372134" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">455000</us-gaap:OperatingLeasePayments>
  <!--Present value of lease liabilities-->
  <us-gaap:OperatingLeaseLiability id="Fact_b712725898e149e3bc38ccdfd46ff94e" contextRef="c20200331" unitRef="U002" decimals="-3">3547000</us-gaap:OperatingLeaseLiability>
  <!--Other Noncurrent Liabilities [Table Text Block]-->
  <us-gaap:OtherNoncurrentLiabilitiesTableTextBlock id="Fact_53cfa4132a0a404bb78dd41a999f7a21" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="margin: 0px 0px 12pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;Other long-term liabilities represent subsidies received from several governmental authorities, including China&amp;#8217;s Ministry of Science and Technology, the Shanghai Municipal Commission of Economy and Information, and the Shanghai Science and Technology Committee, for development and commercialization of certain technology but not yet recognized.&amp;#160; As of March 31, 2020, and December 31, 2019, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;font style="font-size: 1pt;"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;font style="font-size: 0.1pt;"&gt;h&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; 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: 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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,191&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;1,251&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,445&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;2,666&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;123&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;135&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Subsidies to Tahoe-Single Bench Clean,commenced&amp;#160;in 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1,910&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Other&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;161&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;134&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: #CCEEFF;"&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(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,830&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;4,186&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;</us-gaap:OtherNoncurrentLiabilitiesTableTextBlock>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_0e99f47b77024130a5a86810c1a53fbd" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-1900000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Foreign currency translation adjustment-->
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax id="Fact_902f4f6849e44c48a99e4e5d39ce9630" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">657000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <!--Other receivables-->
  <us-gaap:OtherReceivablesNetCurrent id="Fact_d1fa4ae3860746a48779e78fa7843443" contextRef="c20191231" unitRef="U002" decimals="-3">2603000</us-gaap:OtherReceivablesNetCurrent>
  <!--Other receivables-->
  <us-gaap:OtherReceivablesNetCurrent id="Fact_d4431062e57646e6aba63ab6240f3598" contextRef="c20200331" unitRef="U002" decimals="-3">3236000</us-gaap:OtherReceivablesNetCurrent>
  <!--Other payables and accrued expenses (note 7)-->
  <us-gaap:OtherAccountsPayableAndAccruedLiabilities id="Fact_70f0ebdd109d4175b5521399a9945002" contextRef="c20200331" unitRef="U002" decimals="-3">14331000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
  <!--Other payables and accrued expenses (note 7)-->
  <us-gaap:OtherAccountsPayableAndAccruedLiabilities id="Fact_db00c57c0de141a3bf0b66bb75902681" contextRef="c20191231" unitRef="U002" decimals="-3">12874000</us-gaap:OtherAccountsPayableAndAccruedLiabilities>
  <!--Other long-term assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_6992c414f50a400582694edd7092e92e" contextRef="c20200331" unitRef="U002" decimals="-3">155000</us-gaap:OtherAssetsNoncurrent>
  <!--Other long-term assets-->
  <us-gaap:OtherAssetsNoncurrent id="Fact_9541df4749cc4c808c0a1edb4fe6cf5b" contextRef="c20191231" unitRef="U002" decimals="-3">192000</us-gaap:OtherAssetsNoncurrent>
  <!--OTHER LONG-TERM LIABILITIES-->
  <us-gaap:OtherLiabilitiesDisclosureTextBlock id="Fact_89335c1fb54e41b898dc7511c60701c9" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 9 &amp;#8211; OTHER LONG-TERM LIABILITIES&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&lt;font style="font-family: 'Times New Roman';"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="font-family: 'Times New Roman';"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="font-family: 'Times New Roman';"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 12pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;Other long-term liabilities represent subsidies received from several governmental authorities, including China&amp;#8217;s Ministry of Science and Technology, the Shanghai Municipal Commission of Economy and Information, and the Shanghai Science and Technology Committee, for development and commercialization of certain technology but not yet recognized.&amp;#160; As of March 31, 2020, and December 31, 2019, other long-term liabilities consisted of the following unearned government subsidies:&lt;/div&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;font style="font-size: 1pt;"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;font style="font-size: 0.1pt;"&gt;h&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;/div&gt;&lt;font style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;/font&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; 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: 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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,191&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;1,251&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,445&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;2,666&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&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="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;123&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;135&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Subsidies to Tahoe-Single Bench Clean,commenced&amp;#160;in 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1,910&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Other&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;161&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;134&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: #CCEEFF;"&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(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,830&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;4,186&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/div&gt;</us-gaap:OtherLiabilitiesDisclosureTextBlock>
  <!--Other income (expense), net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_639ddd87f5c540819df82f1c3789ee80" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">-261000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other income (expense), net-->
  <us-gaap:OtherNonoperatingIncomeExpense id="Fact_f1d16714f9784e8fa24198cd69858249" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">677000</us-gaap:OtherNonoperatingIncomeExpense>
  <!--Other long-term liabilities (note 9)-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_1c0cb44ae5784de6807d4c22a71a64b8" contextRef="c20191231" unitRef="U002" decimals="-3">4186000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_d75e44526f9340fa951839dfcb2c92f9" contextRef="c20200331" unitRef="U002" decimals="-3">5830000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Stress Free Polishing project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_0a4e6398c9de43a292ed63b2513dcbb6" contextRef="c20200331_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember" unitRef="U002" decimals="-3">1191000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Other [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_15ee0174e6194bfebd1ad62ecf2cc3ab" contextRef="c20191231_DebtInstrumentAxis_OtherMember" unitRef="U002" decimals="-3">134000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Tahoe-Single Bench Clean, Commenced in 2020 [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_1f584c7e4dc249d58a9f828f7d356f9b" contextRef="c20191231_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member" unitRef="U002" decimals="-3">0</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Stress Free Polishing project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_43345fbc9c6c469da2b9e54ac5d25a77" contextRef="c20191231_DebtInstrumentAxis_SubsidiesToStressFreePolishingProjectMember" unitRef="U002" decimals="-3">1251000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Polytetrafluoroethylene [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_58351d3a7cbb468f9ea96a974d1193b6" contextRef="c20200331_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember" unitRef="U002" decimals="-3">123000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Tahoe-Single Bench Clean, Commenced in 2020 [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_822e5879d5764d30a0ef04807a225be2" contextRef="c20200331_DebtInstrumentAxis_SubsidiesToTahoeSingleBenchCleanCommencedIn2020Member" unitRef="U002" decimals="-3">1910000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Polytetrafluoroethylene [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_9a2bcbeeba7c41c7b331d367f7d04cb3" contextRef="c20191231_DebtInstrumentAxis_SubsidiesToPolytetrafluoroethyleneMember" unitRef="U002" decimals="-3">135000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Other [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_ad075391b60e4122b4d7af568c385dce" contextRef="c20200331_DebtInstrumentAxis_OtherMember" unitRef="U002" decimals="-3">161000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Electro Copper Plating project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_db98b229ca5c4ecb8038d91c6417d79a" contextRef="c20200331_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember" unitRef="U002" decimals="-3">2445000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other long-term liabilities (note 9)-Subsidies to Electro Copper Plating project [Member]-->
  <us-gaap:OtherLiabilitiesNoncurrent id="Fact_f6a6cb4d116d4eb28ac5001bb04421a8" contextRef="c20191231_DebtInstrumentAxis_SubsidiesToElectroCopperPlatingProjectMember" unitRef="U002" decimals="-3">2666000</us-gaap:OtherLiabilitiesNoncurrent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax, Portion Attributable to Noncontrolling Interest-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest id="Fact_0c0527e25aa34a0698ec0d0b199e6b3d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-953000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToNoncontrollingInterest>
  <!--Others-->
  <us-gaap:OtherAccruedLiabilitiesCurrent id="Fact_776e2442700e48c9a44b9be8274dbcbf" contextRef="c20200331" unitRef="U002" decimals="-3">2044000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <!--Others-->
  <us-gaap:OtherAccruedLiabilitiesCurrent id="Fact_f664f72c3be14f329fbdf6f636679a1c" contextRef="c20191231" unitRef="U002" decimals="-3">2268000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <!--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_4ac85c0a4bff437fabed3d54159b8eb2" contextRef="c20200101to20200331_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_54a004657fc140918a8c417034ed090a" contextRef="c20200101to20200331_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 Stock [Member]-Common Class A [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_64eef2dc10c94775b0a9a67116700753" contextRef="c20190101to20190331_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 Class A [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_7ac899420c764ba0a36aecad8716ebbd" contextRef="c20200101to20200331_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_89609d6e898640e582765e271d3a826f" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">657000</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_bb966fc4104a40f6bb3b050e42123bbe" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-948000</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_bdf7531e3f9946e2bf4f3e94524f128e" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-948000</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_c2eb376d5ddb4927846c9121b82b96c5" contextRef="c20190101to20190331_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 Deficit [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_f0121c87d9624847897fe4cbb0e1fed8" contextRef="c20200101to20200331_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-AOCI Attributable to Parent [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_f725dec7d7fd4ccf9e770d8aa1723c09" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">657000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_f80c0962cef94e65a076c0db90db0a78" contextRef="c20190101to20190331_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 Class B [Member]-Common Stock [Member]-->
  <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent id="Fact_ff7acc0ac1794182975e54b85384c13d" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
  <!--Payments to Acquire Intangible Assets-->
  <us-gaap:PaymentsToAcquireIntangibleAssets id="Fact_5e7d93bbc8e84f459d5da659ed0f8064" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">0</us-gaap:PaymentsToAcquireIntangibleAssets>
  <!--Payments to Acquire Intangible Assets-->
  <us-gaap:PaymentsToAcquireIntangibleAssets id="Fact_a178b6fcb730464287ce80d89e9f2a95" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1000</us-gaap:PaymentsToAcquireIntangibleAssets>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_5e8f1d91b17c48068355161e7e9db4af" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">118000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Payments to Acquire Property, Plant, and Equipment-->
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment id="Fact_d9db42957dd24856a6c13b53544c3b6b" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">115000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <!--Prepaid expenses-->
  <us-gaap:PrepaidExpenseCurrent id="Fact_4f07ca9a40dd47fea7f84237bca1ea4c" contextRef="c20191231" unitRef="U002" decimals="-3">2047000</us-gaap:PrepaidExpenseCurrent>
  <!--Prepaid expenses-->
  <us-gaap:PrepaidExpenseCurrent id="Fact_868c3519f6314bb4bfd8ac39a093ca63" contextRef="c20200331" unitRef="U002" decimals="-3">1985000</us-gaap:PrepaidExpenseCurrent>
  <!--Proceeds from sale of interest in subsidiary-CleanChip Technologies Limited [Member]-->
  <us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries id="Fact_eb7f2dbbeb204e07ac9cea07b25610fb" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember" unitRef="U002" decimals="-3">3500000</us-gaap:ProceedsFromDivestitureOfInterestInConsolidatedSubsidiaries>
  <!--Proceeds from stock option exercise to common stock-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_4abb7003f2634852b7f7083c0402bc3c" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">60000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from stock option exercise to common stock-->
  <us-gaap:ProceedsFromStockOptionsExercised id="Fact_8bf36c3566804f3b892f29553aa05d38" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">175000</us-gaap:ProceedsFromStockOptionsExercised>
  <!--Proceeds from short-term borrowings-->
  <us-gaap:ProceedsFromShortTermDebt id="Fact_1df607207fc941d38f434e208e437434" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">2681000</us-gaap:ProceedsFromShortTermDebt>
  <!--Proceeds from short-term borrowings-->
  <us-gaap:ProceedsFromShortTermDebt id="Fact_27ef2fc60f47402684f0420ee5479f72" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">8285000</us-gaap:ProceedsFromShortTermDebt>
  <!--Accrued warranty-->
  <us-gaap:ProductWarrantyAccrualClassifiedCurrent id="Fact_0cffce76c45f4ee6bf40cc244883380f" contextRef="c20200331" unitRef="U002" decimals="-3">3092000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
  <!--Accrued warranty-->
  <us-gaap:ProductWarrantyAccrualClassifiedCurrent id="Fact_3253931ceddf4aa0b80d234d5a4435a8" contextRef="c20191231" unitRef="U002" decimals="-3">2811000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_672c865419344add8a2e751f97574950" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1857000</us-gaap:ProfitLoss>
  <!--Net income-->
  <us-gaap:ProfitLoss id="Fact_7a8e22a6c04c47cb88fc3775fed8fa95" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">1963000</us-gaap:ProfitLoss>
  <!--Total cost-Office Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_2de3c3550ff54f2a9a46e0b58869809d" contextRef="c20191231_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember" unitRef="U002" decimals="-3">627000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_3769b8fa84ae4ffda9d67bd8d5ee3a0d" contextRef="c20191231_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember" unitRef="U002" decimals="-3">3902000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Office Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_48797d3511c34147a07a53776b5aed9f" contextRef="c20200331_PropertyPlantAndEquipmentByTypeAxis_OfficeEquipmentMember" unitRef="U002" decimals="-3">685000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_4987760e8a2047a9a867889e564adc64" contextRef="c20191231" unitRef="U002" decimals="-3">6095000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Transportation Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_5c642e1b345448b59124997d407786bd" contextRef="c20191231_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember" unitRef="U002" decimals="-3">124000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Transportation Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_6e09cecfbbbb4471846ed7a50fdc78c0" contextRef="c20200331_PropertyPlantAndEquipmentByTypeAxis_TransportationEquipmentMember" unitRef="U002" decimals="-3">170000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_75566104b62f491794935422cba33b2f" contextRef="c20200331" unitRef="U002" decimals="-3">6163000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Leasehold Improvement [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_ae0c2f4019f94e0bac05027f9e539832" contextRef="c20200331_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U002" decimals="-3">1425000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Leasehold Improvement [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_ae3f658879d64a53b6c57fca8ace74a8" contextRef="c20191231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U002" decimals="-3">1442000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Total cost-Equipment [Member]-->
  <us-gaap:PropertyPlantAndEquipmentGross id="Fact_e597cb76f1564f38b0a0182eaca50b5c" contextRef="c20200331_PropertyPlantAndEquipmentByTypeAxis_EquipmentMember" unitRef="U002" decimals="-3">3883000</us-gaap:PropertyPlantAndEquipmentGross>
  <!--Property, Plant and Equipment Disclosure [Text Block]-->
  <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock id="Fact_fd86415eeda44462b1cb9e800b06139b" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 5 &amp;#8211; PROPERTY, PLANT AND EQUIPMENT, NET&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, property, plant and equipment consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160; &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: 90%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 66%; text-indent: -9pt; margin-left: 9pt;"&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;3,883&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;3,902&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;685&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;627&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;170&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;124&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&gt;1,425&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1,442&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;6,163&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;6,095&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;(3,266&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(3,077&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;598&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;601&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;3,495&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,619&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Depreciation expense was $185 and $175 for the three months ended March 31, 2020 and 2019, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
  <!--Property, Plant and Equipment [Table Text Block]-->
  <us-gaap:PropertyPlantAndEquipmentTextBlock id="Fact_26dbf75c2b46422e88ca6b215ff0ebbe" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, property, plant and equipment consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160; &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: 90%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 66%; text-indent: -9pt; margin-left: 9pt;"&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;3,883&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;3,902&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;685&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;627&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;170&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;124&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&gt;1,425&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1,442&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;6,163&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;6,095&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;(3,266&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(3,077&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;598&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;601&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;3,495&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,619&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: #FFFFFF;"&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_44700cd1cf0f43b19ed0c62b6b0e2216" contextRef="c20191231" unitRef="U002" decimals="-3">3619000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Property, plant and equipment, net (note 5)-->
  <us-gaap:PropertyPlantAndEquipmentNet id="Fact_8d42c07a2bec485aa235b2b187eedb5e" contextRef="c20200331" unitRef="U002" decimals="-3">3495000</us-gaap:PropertyPlantAndEquipmentNet>
  <!--Components of Change in Redeemable Non-controlling Interests-->
  <us-gaap:RedeemableNoncontrollingInterestTableTextBlock id="Fact_eaef8c7b7eaa47abb1b5c5c28eeed0b9" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;The components of the change in the redeemable non-controlling interests for the three months ended March 31, 2020 are presented in the following table:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Balance at December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;60,162&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 68%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;258&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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%; 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: #000000;"&gt;(953&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;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Balance at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;59,467&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RedeemableNoncontrollingInterestTableTextBlock>
  <!--Redeemable non-controlling interests (note 13)-->
  <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount id="Fact_01092914bcaf47b9ab75103f7f425905" contextRef="c20200331" unitRef="U002" decimals="-3">59467000</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
  <!--Redeemable non-controlling interests (note 13)-->
  <us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount id="Fact_f1627cafc779425a86d719d9d1420447" contextRef="c20191231" unitRef="U002" decimals="-3">60162000</us-gaap:RedeemableNoncontrollingInterestEquityCarryingAmount>
  <!--Related Party Transactions Disclosure [Text Block]-->
  <us-gaap:RelatedPartyTransactionsDisclosureTextBlock id="Fact_f875aed07ecf4dcea7d7a816ff4f37ae" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 11&amp;#8211; RELATED PARTY BALANCES AND TRANSACTIONS&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; text-indent: -9pt; margin-left: 9pt;"&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three months ended March 31&lt;/div&gt;&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; padding-bottom: 2px; width: 34%;"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Purchase of materials&lt;/div&gt;&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; font-weight: bold;"&gt;2020&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,153&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,320&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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Shengyi&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;58&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&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: 34%; background-color: rgb(204, 238, 255); padding-bottom: 4px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;2,211&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: 4px;"&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: 4px;"&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;&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: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,320&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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(255, 255, 255); text-indent: -9pt; margin-left: 9pt;"&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: 15%; 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="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: 15%; 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; padding-bottom: 2px; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Prepaid expenses&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;March 31, 2020&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); 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="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; 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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;648&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255); text-indent: -9pt; margin-left: 9pt;"&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: 15%; 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: 15%; 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; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 34%;"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Accounts payable&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255); 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; background-color: rgb(255, 255, 255); width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,604&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;727&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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Shengyi&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;189&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;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); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255); padding-bottom: 4px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;2,793&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: 4px;"&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;1,215&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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;On December 9, 2016, Shengxin (Shanghai) Management Consulting Limited Partnership (&amp;#8220;SMC&amp;#8221;), a PRC limited partnership owned by employees of ACM Shanghai, including Jian Wang, the Chief Executive Officer and President of ACM Shanghai and the brother of David H. Wang (a related party), 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. 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, (a) 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 and (b) ACM Shanghai agreed to repay the SMC Investment within 60 days after exercise of the SMC Warrant. On March 30, 2018, SMC exercised the SMC Warrant in full and purchased 397,502 shares of Class A common stock (note 12). SMC borrowed the funds to pay the SMC Warrant exercise price pursuant to a senior secured promissory note in the principal amount of $2,981 issued to the Company (the &amp;#8220;SMC Note&amp;#8221;). The note bears interest at a rate of 3.01% per annum and matures on August 17, 2023 and is secured by a pledge of the shares issued upon exercise of the SMC Warrant. As described in the following paragraph, in the third quarter of 2019 ACM repurchased a total of 154,821 of the SMC Warrant shares from SMC at a per share price of $13.195, of which (a) $1,161 was applied to reduce SMC&amp;#8217;s obligations to ACM Shanghai under the SMC Note and the remaining $882 was paid to SMC. In a separate transaction in August, 2019, ACM Shanghai repaid $1,161 of the SMC Investment in cash.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;On August 14, 2019, ACM entered into an equity purchase agreement 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 12), 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 an aggregate of 214,286 shares of Class A common stock and cancellation of options to acquire 53,571 shares of Class A common stock amounted to a total of $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 the offering.&lt;/div&gt;&lt;/div&gt;</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
  <!--Related Party Transaction, Purchases from Related Party-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_2720a37efeb74e6b8c956eca89dcaafc" contextRef="c20190101to20190331_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">0</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Related Party Transaction, Purchases from Related Party-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_28e08ebceb6f4df28740ebda607461cc" contextRef="c20190101to20190331_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">2320000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Related Party Transaction, Purchases from Related Party-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_4db7c56c792b497db708fb27c53f9fbe" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">2211000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Related Party Transaction, Purchases from Related Party-Ninebell Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_6d173bc50f894cf1a60c6a6e21a5e1fb" contextRef="c20200101to20200331_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">2153000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Related Party Transaction, Purchases from Related Party-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_97d97852f1504369a4547770571212ce" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2320000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Related Party Transaction, Purchases from Related Party-Shengyi Semiconductor Technology Co., Ltd [Member]-->
  <us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty id="Fact_f1e6a4f9ac41470da455673f4f833d04" contextRef="c20200101to20200331_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCoLtdMember" unitRef="U002" decimals="-3">58000</us-gaap:RelatedPartyTransactionPurchasesFromRelatedParty>
  <!--Repayment of Notes Receivable from Related Parties-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:RepaymentOfNotesReceivableFromRelatedParties id="Fact_5e73ec9b1fbe460c9354cee0dcccb7d5" contextRef="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">882000</us-gaap:RepaymentOfNotesReceivableFromRelatedParties>
  <!--Repayment of Notes Receivable from Related Parties-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:RepaymentOfNotesReceivableFromRelatedParties id="Fact_8430d65fdd0d4f289d184f9d1d8c0bcc" contextRef="c20190801to20190831_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U002" decimals="-3">1161000</us-gaap:RepaymentOfNotesReceivableFromRelatedParties>
  <!--Repayments of Short-term Debt-->
  <us-gaap:RepaymentsOfShortTermDebt id="Fact_5487ac0329d84b5f80d84f487eb8fdbc" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">5084000</us-gaap:RepaymentsOfShortTermDebt>
  <!--Repayments of Short-term Debt-->
  <us-gaap:RepaymentsOfShortTermDebt id="Fact_eedb780447dc48318bbc93109fbde784" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">12415000</us-gaap:RepaymentsOfShortTermDebt>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_1a7c5413053a46599ace3da553cd2ccb" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">3677000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Research and development-->
  <us-gaap:ResearchAndDevelopmentExpense id="Fact_965212d89d0d4bd2a353f15b07017984" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">2765000</us-gaap:ResearchAndDevelopmentExpense>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_82a6949767b345e38166b175679dcd21" contextRef="c20191231" unitRef="U002" decimals="-3">59598000</us-gaap:RestrictedCashCurrent>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_92deeb498fda4682b3c432c3370c3a15" contextRef="c20200331" unitRef="U002" decimals="-3">58726000</us-gaap:RestrictedCashCurrent>
  <!--Restricted cash-->
  <us-gaap:RestrictedCashCurrent id="Fact_edcae2a92f5f45a78c32e121788b4604" contextRef="c20190331" unitRef="U002" decimals="-3">0</us-gaap:RestrictedCashCurrent>
  <!--Retained Earnings (Accumulated Deficit)-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_c6a47e1f00134b0cb093f085b89a7836" contextRef="c20191231" unitRef="U002" decimals="-3">15507000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Retained Earnings (Accumulated Deficit)-->
  <us-gaap:RetainedEarningsAccumulatedDeficit id="Fact_f8cbf138ca2146ccb18206d94bdec522" contextRef="c20200331" unitRef="U002" decimals="-3">17212000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_98de833a0d3e4682aaa8d0a041d299fc" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">24348000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--Revenue from Contract with Customer, Excluding Assessed Tax-->
  <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax id="Fact_e1e0fbe5b84c43338a802f74b61eeca1" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">20479000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
  <!--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_0ce60db630474e08adaf43ef7e6ac51f" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">2.59</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_2b39d79ca86f4b7583f326195dc9bc41" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</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_a311c7b73d2e41dfb5ecc154ab7ed54d" contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.82</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_12f06570322941d7aef3be9050caa01e" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">1.01</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_15f13a643c0a46cbaeea588a0594c400" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">2.61</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Option, Nonvested, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue id="Fact_31350402d3914ae8be761b52c95a9952" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">0.22</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]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue id="Fact_41a45a44125d42b6b64283f3d73050cb" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">0.23</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_5fd3f8bf4e0841bb9c64501c2ca23422" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</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, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue id="Fact_a651a2e6c54b48c09000dd38c0f106ea" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">6.46</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_1f19129601d7473e9e4ddb9d87fe0ff6" contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P0Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_e59ce294a4d04d4ba1370c44f3bd9467" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember">P6Y9M22D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_f97a3dd77f304d4ea73e735b70697957" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P5Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_ffb1caf28dc947a88d40dcbe652c787e" contextRef="c20190101to20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">P5Y10M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_33e7d8fd7bf242078a1da925d1a2688c" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P4Y3M4D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Outstanding weighed average remaining contractual term-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 id="Fact_41c54480598a404f8bc968b9d4cfb12d" contextRef="c20190101to20191231_AwardTypeAxis_EmployeeStockOptionMember">P7Y0M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <!--Schedule of Inventory, Current [Table Text Block]-->
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock id="Fact_da246e20d84b4c31bb40ffcddb24046b" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, inventory consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&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; text-indent: -9pt; margin-left: 9pt; width: 66%;"&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;15,796&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;15,105&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;17,622&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;10,407&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;11,569&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;19,284&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&amp;#160;inventory&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;44,987&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;44,796&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <!--Schedule of Related Party Transactions [Table Text Block]-->
  <us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock id="Fact_bd22a8f201114f229658021461490b39" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; text-indent: -9pt; margin-left: 9pt;"&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three months ended March 31&lt;/div&gt;&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; padding-bottom: 2px; width: 34%;"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Purchase of materials&lt;/div&gt;&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; font-weight: bold;"&gt;2020&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,153&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,320&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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Shengyi&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;58&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&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: 34%; background-color: rgb(204, 238, 255); padding-bottom: 4px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;2,211&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: 4px;"&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: 4px;"&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;&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: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;2,320&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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(255, 255, 255); text-indent: -9pt; margin-left: 9pt;"&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: 15%; 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="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: 15%; 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; padding-bottom: 2px; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Prepaid expenses&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; background-color: rgb(204, 238, 255);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;March 31, 2020&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); 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="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; 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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 4px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;648&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(255, 255, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255); text-indent: -9pt; margin-left: 9pt;"&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: 15%; 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: 15%; 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; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 34%;"&gt;&lt;div style="font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Accounts payable&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; background-color: rgb(255, 255, 255); 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; background-color: rgb(255, 255, 255); width: 1%; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; background-color: rgb(255, 255, 255); width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Ninebell&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;2,604&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: 15%; background-color: rgb(204, 238, 255);"&gt;&lt;div&gt;727&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: 34%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Shengyi&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;189&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: 15%; background-color: rgb(255, 255, 255); border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div&gt;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); padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 34%; background-color: rgb(204, 238, 255); padding-bottom: 4px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Total&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;2,793&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: 4px;"&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: 4px;"&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;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255); border-bottom: 4px double rgb(0, 0, 0);"&gt;&lt;div&gt;1,215&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: 4px;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock>
  <!--Share-based Payment Arrangement, Option, Activity [Table Text Block]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock id="Fact_9c055f44aeac46da827f2bff7af61c91" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the Company&amp;#8217;s employee share option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: #000000; 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: 30%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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;Number of&lt;br /&gt; Option Share&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: center; 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%; text-align: center;"&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="text-align: center; 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%; text-align: center;"&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;&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" nowrap="nowrap" valign="bottom" style="text-align: center; vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2,994,063&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.59&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;6.77&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;7.05 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;20,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;9.11&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;22.95&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(26,032&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.31&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;3.60&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(22,000&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;6.46&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;16.74&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2,966,031&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.61&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;6.83&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000; font-weight: bold;"&gt;6.81 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,859,052&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: 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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <!--Share-based Payment Arrangement, Option, Activity [Table Text Block]-Share-based Payment Arrangement, Non Employee Stock Option [Member]-->
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock id="Fact_0a45ec889c5744cdb0e73a456f11310b" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the Company&amp;#8217;s non-employee stock option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&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: bottom; padding-bottom: 2px; width: 30%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; 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="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: #000000; 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="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: #000000; font-weight: bold;"&gt;Weighted&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Average&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Exercise&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Price&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 valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Weighted Average &lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Remaining &lt;/div&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;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;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1,101,613&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: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;0.82&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: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;2.69&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;5.85&amp;#160;years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;20,000&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;10.29&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;25.60&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 valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(44,446&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;&lt;div style="color: #000000;"&gt;)&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.44&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.82&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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);"&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: #FFFFFF;"&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="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: #FFFFFF;"&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 valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="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: #CCEEFF;"&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;March 31,&amp;#160;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: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1,077,167&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;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1.01&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;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;3.15&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;5.75&amp;#160;years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,007,076&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: #CCEEFF;"&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: #CCEEFF;"&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 valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <!--Share-based Payment Arrangement, Option, Activity [Table Text Block]-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock id="Fact_8ad5019dc3454304abb5ee9213603bdd" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following table summarizes the ACM Shanghai employee stock option activities during the three months ended March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&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: 30%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; text-align: center;"&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 in&lt;br /&gt; ACM Shanghai&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="text-align: center; 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%; text-align: center;"&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="text-align: center; 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%; text-align: center;"&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;&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" nowrap="nowrap" valign="bottom" style="text-align: center; vertical-align: bottom; padding-bottom: 2px; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 14%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;"&gt;Weighed Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual Term&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding&amp;#160;at&amp;#160;December 31,&amp;#160;2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10.05pt; color: #000000; font-weight: bold;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Granted&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,869,808&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.22&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Exercised&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Expired&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Forfeited/cancelled&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(192,308&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.23&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 30%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Outstanding at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;5,677,500&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;0.22&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;1.87&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 14%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: right; color: #000000; font-weight: bold;"&gt;4.26 years&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 30%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Vested&amp;#160;and&amp;#160;exercisable&amp;#160;at&amp;#160;March 31,&amp;#160;2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 14%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-align: right; text-indent: 10pt; color: #000000;"&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/div&gt;&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_4165badb14b24dcbaac446b94424255c" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, other payable and accrued expenses consisted of the following:&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;Accrued commissions&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;4,593&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;4,082&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;3,092&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,811&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;2,775&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;2,092&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;403&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;165&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,424&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,044&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;2,268&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; 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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;14,331&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;12,874&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
  <!--Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]-->
  <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock id="Fact_088062a926174deab49e71016d200e0c" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The following presents components of income tax expense for the indicated periods:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; font-style: italic;"&gt;(in thousands)&lt;/div&gt;&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: middle;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&gt;Current:&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;/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: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;federal&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(10&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;state&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Foreign&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 style="color: #000000;"&gt;(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); padding-bottom: 2px;"&gt;&lt;div style="color: #000000;"&gt;)&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;-&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: middle; width: 76%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Total current tax expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(267&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: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&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: #FFFFFF;"&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: -9pt; margin-left: 9pt;"&gt;Deferred:&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;federal&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;(28&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;U.S.&amp;#160;state&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;-&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Foreign&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: #000000;"&gt;(9&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;&lt;div style="color: #000000;"&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); 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&gt;(119&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;&lt;div&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: -9pt; margin-left: 27pt;"&gt;Total deferred tax benefit&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;(37&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: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;(119&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: #CCEEFF;"&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: 76%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&gt;Total&amp;#160; income tax expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;(304&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: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;(119&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: #FFFFFF;"&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
  <!--Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]-->
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock id="Fact_0c8205eb5dc8498e8822e315e89de766" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; 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: 56%; text-indent: -9pt; margin-left: 9pt;"&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="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: #000000; font-weight: bold;"&gt;Three Months Ended March 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: bottom; padding-bottom: 2px; width: 56%; text-indent: -9pt; margin-left: 9pt;"&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; 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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Numerator:&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: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,963&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,857&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&gt;Net income attributable to redeemable non-controlling interest&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;258&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,705&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;1,857&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: #CCEEFF;"&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(255, 255, 255); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,120,363&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;16,044,655&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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(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: #000000;"&gt;2,946,273&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: #000000;"&gt;2,180,662&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: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;21,066,636&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,225,317&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: #CCEEFF;"&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); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.09&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.12&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.08&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.10&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
  <!--Share-based Payment Arrangement, Cost by Plan [Table Text Block]-->
  <us-gaap:ScheduleOfCompensationCostForShareBasedPaymentArrangementsAllocationOfShareBasedCompensationCostsByPlanTableTextBlock id="Fact_e4dbaaa5e8c44e5688698ab441df2200" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;The following table summarizes the components of stock-based compensation expense included in the consolidated statements of operations:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 70%; color: #000000; 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: 46%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Three Months Ended March 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; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Stock-Based Compensation Expense:&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: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Cost of revenue&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;45&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;30&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Sales and marketing expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;94&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;34&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Research and development expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;187&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;86&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;General and administrative expense&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div&gt;363&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;594&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;689&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;744&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&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: 70%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Three Months Ended March 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; padding-bottom: 2px; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; width: 1%;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%;"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Stock-based compensation expense by type:&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: 46%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Employee stock purchase plan&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;431&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;221&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Non-employee stock purchase plan&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;172&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;523&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 2px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Subsidiary option grants&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div&gt;86&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 46%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div&gt;689&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;744&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCompensationCostForShareBasedPaymentArrangementsAllocationOfShareBasedCompensationCostsByPlanTableTextBlock>
  <!--Schedule of Short-term Debt [Table Text Block]-->
  <us-gaap:ScheduleOfShortTermDebtTextBlock id="Fact_3f8b4e5732924d39992ac9caa79df788" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, short-term borrowings consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px;"&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&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="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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.It was fully repaid on January 23, 2020.&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: #000000;"&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;&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: #000000;"&gt;5,057&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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.It was fully repaid on February 21, 2020.&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: #000000;"&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);"&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: #000000;"&gt;1,433&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on January 19, 2020.&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: #000000;"&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;&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: #000000;"&gt;1,433&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on January 22, 2020.&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: #000000;"&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);"&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: #000000;"&gt;717&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on February 14, 2020.&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: #000000;"&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;&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: #000000;"&gt;717&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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 and fully repaid on March 24, 2020.&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: #000000;"&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);"&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: #000000;"&gt;3,250&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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(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: #000000;"&gt;1,129&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: #000000;"&gt;1,146&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on August 24, 2020 with an annual interest rate of 5.22%, 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: #000000;"&gt;2,681&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;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to KRW 500,000 from Industrial Bank of Korea (IBK), due on July 11, 2020 with an annual interest rate of 4.17%, guaranteed by the ACM-KOREA CEO.&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(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: #000000;"&gt;82&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="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-align: justify; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&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: #0D0D0D; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #0D0D0D; font-weight: bold;"&gt;3,892&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: #0D0D0D; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #0D0D0D; font-weight: bold;"&gt;13,753&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_e474f993a4ca4accbabb7b4cf9669d05" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, accounts receivable consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 60%; 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: 36%;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 36%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;37,260&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;31,091&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 36%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 36%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;37,260&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;31,091&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_65cfbeefcb024fbe92a4bb3ac610505d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">3005000</us-gaap:SellingAndMarketingExpense>
  <!--Selling and Marketing Expense-->
  <us-gaap:SellingAndMarketingExpense id="Fact_b42fd55e68d648f89b93456501916e53" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">1869000</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]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice id="Fact_fc2d658fea0d4f7094e6fb75e0d75eb5" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</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_7d7605ef8ae24845bf20bbf345e04f7f" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">1.82</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <!--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_919f212c510d4f7a908e7a813e616ec6" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">3.60</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice id="Fact_13beb8056d034b59b86232bf1488d963" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">1.87</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_ffa5da7747974cdea46c80587cbde780" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">22.95</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <!--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_65c2c25bd43345b68fc66c790ee21114" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">25.60</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <!--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_0e2b14d601ac4b5c9562facf8df38af5" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" 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, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice id="Fact_eed66e666f85434db1768ea9b1be30ec" contextRef="c20200101to20200331_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]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice id="Fact_3f864c81d81d415b826a43007df4c3e2" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
  <!--Share-based Payment Arrangement, Noncash Expense-->
  <us-gaap:ShareBasedCompensation id="Fact_72838499653543cab9b7358c872f11ee" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">744000</us-gaap:ShareBasedCompensation>
  <!--Share-based Payment Arrangement, Noncash Expense-->
  <us-gaap:ShareBasedCompensation id="Fact_badefa7a3e694788a806000158448832" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">689000</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_0bfe5d3c4e3945f8b4ee5d0ba84e7474" 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_2943e3b29b854fafb37e67ed7e95359b" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U003" decimals="3">13.195</us-gaap:SharePrice>
  <!--Stock price (in dollars per share)-Common Class A [Member]-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:SharePrice id="Fact_918eb60a118d4d5f862e0e6e1d7c6cde" contextRef="c20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="2">7.50</us-gaap:SharePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross id="Fact_c8266eaa0a594bdabc8b9aa8bbdd2b58" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">5869808</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_36896b76d33b4078a3654792329684c5" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">20000</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_ad8d2ed3b0dc4efcbd599688a63984e3" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">20000</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]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice id="Fact_07e88eb919c74a359c8e346f9dfaca42" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">1.87</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
  <!--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_6120aa65e1f8431fb18fdda499da7de6" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">16.74</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_aad1b8157552489b90989a6cd5519bd5" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="0">0</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, Non Employee Stock Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue id="Fact_cf0767a531e04d22b557ef72bf80ec59" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">10.29</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, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue id="Fact_dead82d2a8b3414d994e27c1d4acf093" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">0.22</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, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue id="Fact_3132545fcf57494ba85d8eb4c698c9be" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">9.11</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number-ACM Research (Shanghai), Inc. [Member]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber id="Fact_30bfb979d9f84af580bc1fc3aa703b61" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">0</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_6b12aefef800471d91aa802087713987" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">1859052</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <!--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_927a868535084ebe9193bb808fc0ce3b" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">1007076</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod id="Fact_1616edb409af4f53b740541173ca750f" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">0</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_1a12bc419692410b931e7e60dc6f34fe" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod id="Fact_c64494a8932d4d81880fb85dc43f6b19" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_5dc6f26401344d24943c49b532e3b0a6" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">22000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod id="Fact_7c45d8baa7934f67ad3faa7e3454bcb1" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">192308</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_90aa284ad40f44c0ad57577addc99f77" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">0</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_2c12e7f15e3e41f5bac94c60e8b91c86" contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">1101613</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_f03f7a4b81ee4c98b8de6d0aa69e7357" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">2994063</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_327e6f8439fb45e49908db5d1dfa5bba" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">0</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_e7e8a0d7bb434e3b9fc7215bc926b581" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">1077167</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_5ff0840828ed4dd9b231c1a185486086" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">2966031</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number-ACM Research (Shanghai), Inc. [Member]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber id="Fact_96441cd2cbb84b19b8cae62b757290b6" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">5677500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <!--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_08bac7ac73df47c4b4383f798ab4cc51" contextRef="c20191231_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">2.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_4476b7ccdaa94da89a6862fca5c0d767" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</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_b0b29df9c6be4ddaacce91dce747f775" contextRef="c20191231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">6.77</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_3b1d06fd959840bd881d6dcf746a482c" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">6.83</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_789ba99b065144b48370ce1dbe6ad694" contextRef="c20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">3.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price-ACM Research (Shanghai), Inc. [Member]-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice id="Fact_a7c1f8523de04e3aaf4a6efb32e31b3d" contextRef="c20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="2">1.87</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <!--Shares, Issued-Ninebell Company Limited [Member]-Common Class A [Member]-->
  <us-gaap:SharesIssued id="Fact_cb12afce7aa34ec9b541e66a9b15b603" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">133334</us-gaap:SharesIssued>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:SharesOutstanding id="Fact_1204a38c7774484ea73f04a0e9c0b7bf" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">16182151</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:SharesOutstanding id="Fact_4ceeebf3f84e4e06b92e01b3411c08f9" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">14110315</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_b2d87c72ede64274aadcac895145f4c6" 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_f389623e1a6b442fb50269b5fe3ec5a9" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1862608</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_3ec9d5296f7f4e138813e3a429b1b2dd" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1862608</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:SharesOutstanding id="Fact_6ecfeb65e1f846ba872e772b99f81952" contextRef="c20190331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">1898423</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:SharesOutstanding id="Fact_b2af210aa7084597a3f4df06127276c5" contextRef="c20190331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">14176690</us-gaap:SharesOutstanding>
  <!--Shares, Outstanding-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:SharesOutstanding id="Fact_cb3e27afb8c8484b8fecc6aa85dc4fec" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">16317346</us-gaap:SharesOutstanding>
  <!--Share price (in dollars per share)-Common Class A [Member]-Ninebell Company Limited [Member]-->
  <us-gaap:SharesIssuedPricePerShare id="Fact_3a85da5f748641359fc57633bb8e90b1" contextRef="c20170911_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCompanyLimitedMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U003" decimals="2">7.50</us-gaap:SharesIssuedPricePerShare>
  <!--Short-term lease cost-->
  <us-gaap:ShortTermLeaseCost id="Fact_2db34264bc0345eb87d796fbc34fac8a" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">18000</us-gaap:ShortTermLeaseCost>
  <!--Short-term lease cost-->
  <us-gaap:ShortTermLeaseCost id="Fact_34ac964bc267440dba98b3e5db0ff273" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">50000</us-gaap:ShortTermLeaseCost>
  <!--Short-term Debt [Text Block]-->
  <us-gaap:ShortTermDebtTextBlock id="Fact_8612472bfd7a4a1aa28c4c6caf08e7c7" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 6 &amp;#8211; SHORT-TERM BORROWINGS&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;At March 31, 2020 and December 31, 2019, short-term borrowings consisted of the following:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px;"&gt;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&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="2" nowrap="nowrap" valign="bottom" style="vertical-align: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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.It was fully repaid on January 23, 2020.&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: #000000;"&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;&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: #000000;"&gt;5,057&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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.It was fully repaid on February 21, 2020.&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: #000000;"&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);"&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: #000000;"&gt;1,433&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on January 19, 2020.&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: #000000;"&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;&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: #000000;"&gt;1,433&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on January 22, 2020.&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: #000000;"&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);"&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: #000000;"&gt;717&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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% and fully repaid on February 14, 2020.&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: #000000;"&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;&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: #000000;"&gt;717&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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 and fully repaid on March 24, 2020.&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: #000000;"&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);"&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: #000000;"&gt;3,250&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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(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: #000000;"&gt;1,129&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: #000000;"&gt;1,146&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-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to RMB 50,000 from China Everbright Bank, due on August 24, 2020 with an annual interest rate of 5.22%, 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: #000000;"&gt;2,681&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;&lt;div style="text-align: justify; color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Line of credit up to KRW 500,000 from Industrial Bank of Korea (IBK), due on July 11, 2020 with an annual interest rate of 4.17%, guaranteed by the ACM-KOREA CEO.&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(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: #000000;"&gt;82&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="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-align: justify; color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&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: #0D0D0D; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #0D0D0D; font-weight: bold;"&gt;3,892&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: #0D0D0D; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #0D0D0D; font-weight: bold;"&gt;13,753&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Interest expense related to short-term borrowings amounted to $111 and $139 for the three months ended March 31, 2020 and 2019 respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:ShortTermDebtTextBlock>
  <!--Short-term borrowings (note 6)-->
  <us-gaap:ShortTermBorrowings id="Fact_60845f8a93b748aeb23050f4d74e8e6b" contextRef="c20200331" unitRef="U002" decimals="-3">3892000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-->
  <us-gaap:ShortTermBorrowings id="Fact_b7a9663e1cb9402b96695d23ae6d4884" contextRef="c20191231" unitRef="U002" decimals="-3">13753000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 1 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_0173761d331e46c2b7dc4f2036203d91" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 8 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_0f0e6f343bc348daa97b69254e7eebe9" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U002" decimals="-3">2681000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 9 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_3bd6f9ee99f74f9da0b6c5b6380d27b2" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 1 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_40c5feb0f29a4b57b1e14f2aff44f2cc" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit1Member" unitRef="U002" decimals="-3">5057000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 6 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_5a43daf8cdde47709558e8f0225a84d0" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 6 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_6e4eca13d42e443d8d353a4a142070fc" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit6Member" unitRef="U002" decimals="-3">3250000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 4 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_709e8fe00f3b4fd1b943a2879eb9fa39" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 3 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_75618b27252b4ddea6735d0f570127d9" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U002" decimals="-3">1433000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 5 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_9018efd662d5424dbe86e760e7e0368a" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 4 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_96ee0347e917425f8cace2aa0c44227f" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit4Member" unitRef="U002" decimals="-3">717000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 9 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_9ab80430886546b5a8923bec9eca7799" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit9Member" unitRef="U002" decimals="-3">82000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 5 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_a52de8171c43487a853ae033dbf137f4" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit5Member" unitRef="U002" decimals="-3">717000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 3 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_a5b5a1760ccf48cc9f48227abbe0e47b" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit3Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 8 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_cf3541153460419b8e225ddd0b9e3d7e" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit8Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 7 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_d669ece40a524a4e852828324b743ef0" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U002" decimals="-3">1146000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 2 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_d76d00c10d6841a5a53d3ed4ac9e1a8a" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U002" decimals="-3">0</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 2 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_e1e3c98adbc74658b7e13833000f6f4c" contextRef="c20191231_DebtInstrumentAxis_LineOfCredit2Member" unitRef="U002" decimals="-3">1433000</us-gaap:ShortTermBorrowings>
  <!--Short-term borrowings (note 6)-Line of Credit 7 [Member]-->
  <us-gaap:ShortTermBorrowings id="Fact_f74f9af256cd42b388f92170eabbf7cf" contextRef="c20200331_DebtInstrumentAxis_LineOfCredit7Member" unitRef="U002" decimals="-3">1129000</us-gaap:ShortTermBorrowings>
  <!--Significant Accounting Policies [Text Block]-->
  <us-gaap:SignificantAccountingPoliciesTextBlock id="Fact_f4b38d2f0e2b4141887e5951a10bfbaa" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000; font-weight: bold;"&gt;NOTE 2 &amp;#8211; SIGNIFICANT ACCOUNTING POLICIES&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-weight: bold;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Basis of Presentation and Principles of Consolidation&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The Company&amp;#8217;s consolidated financial statements include the accounts of ACM and its subsidiaries including ACM Shanghai and its subsidiaries, which include ACM Wuxi, ACM Shengwei, and CleanChip (the subsidiaries of which include ACM California and ACM Korea). ACM&amp;#8217;s 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; color: #000000;"&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 Securities and Exchange Commission 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, 2019 included in ACM&amp;#8217;s Annual Report on Form 10-K for the year ended December 31, 2019.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The accompanying condensed consolidated balance sheet as of March 31, 2020, the condensed consolidated statements of operations and comprehensive income for the three months ended March 31, 2020 and 2019, the condensed consolidated statements of changes in stockholders&amp;#8217; equity for the three months ended March 31, 2020 and 2019, and the condensed consolidated statements of cash flows for the three months ended March 31, 2020 and 2019 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 March 31, 2020 and the results of operations for the three months ended March 31, 2020 are not necessarily indicative of the results to be expected for any future period.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&lt;u&gt;COVID-19 Assessment&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;font style="color: #000000;"&gt;The outbreak of COVID&amp;#8209;19, the coronavirus, has grown both in the United States and globally, and related government and private sector responsive actions have adversely affected the Company&amp;#8217;s business operations. COVID&amp;#8209;19 originated in Wuhan, China, in December 2019, and a series of emergency quarantine measures taken by the PRC government disrupted domestic business activities in the PRC during the weeks after the initial outbreak of COVID&amp;#8209;19. Since that time, an increasing number of countries, including the United States, have imposed restrictions on travel to and from the PRC and elsewhere, as well as general movement restrictions, business closures and other measures imposed to slow the spread of COVID&amp;#8209;19. The situation continues to develop rapidly, however, and it is impossible to predict the effect and ultimate impact of the COVID&amp;#8209;19 outbreak on the Company&amp;#8217;s business operations and results. While the quarantine, social distancing and other regulatory measures instituted or recommended in response to COVID&amp;#8209;19 are expected to be temporary, the duration of the business disruptions, and related financial impact, cannot be estimated at this time. The COVID&amp;#8209;19 &lt;/font&gt;outbreak has been declared a worldwide health pandemic that &lt;font style="color: #000000;"&gt;could adversely affect the economies and financial markets of many countries, resulting in an economic downturn and changes in global economic policy that could reduce demand for the Company&amp;#8217;s products and its customers&amp;#8217; chips and have a material adverse impact on the Company&amp;#8217;s business, operating results and financial condition.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Use of Estimates&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Basic and Diluted Net Income per Common Share&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;Basic and diluted net income per common share is calculated as follows:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; 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: 56%; text-indent: -9pt; margin-left: 9pt;"&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="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: #000000; font-weight: bold;"&gt;Three Months Ended March 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: bottom; padding-bottom: 2px; width: 56%; text-indent: -9pt; margin-left: 9pt;"&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: #000000; font-weight: bold;"&gt;2020&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: #000000; 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; 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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Numerator:&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: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,963&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,857&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; padding-bottom: 2px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&gt;Net income attributable to redeemable non-controlling interest&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;258&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,705&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div&gt;1,857&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: #CCEEFF;"&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(255, 255, 255); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,120,363&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;16,044,655&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(255, 255, 255); padding-bottom: 2px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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(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: #000000;"&gt;2,946,273&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: #000000;"&gt;2,180,662&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: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;21,066,636&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;18,225,317&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: #CCEEFF;"&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); text-indent: -9pt; margin-left: 9pt;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 56%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 56%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.09&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;0.12&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: #FFFFFF;"&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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.08&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;0.10&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 months ended March 31, 2020 and 2019, 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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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 of warrants and stock options for the three months ended March 31, 2020 and 2019.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Concentration of Credit Risk&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The Company is potentially subject to concentrations of credit risks in its accounts receivable. For the three months ended March 31, 2020 and 2019, the Company&amp;#8217;s three largest customers for the period accounted for 97.4%&amp;#160; and 62.7% of revenue.&amp;#160; As of March 31, 2020 and December 31, 2019 the Company&amp;#8217;s three largest customers accounted for 76.1% and 67.7% respectively, of the Company&amp;#8217;s accounts receivables. The Company believes that the receivable balances from these largest customers do not represent a significant credit risk based on past collection experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Recent Accounting Pronouncements&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Recently Adopted Accounting Pronouncements&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In August 2018, the Financial Accounting Standards Board (the &amp;#8220;FASB&amp;#8221;) issued Accounting Standards Update (&amp;#8220;ASU&amp;#8221;) 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 adoption of ASU 2018-13 did not have a material impact on the Company&amp;#8217;s consolidated financial statements.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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. In October 2019, the FASB issued ASU 2019-10, &lt;font style="font-style: italic;"&gt;Financial Instruments &amp;#8211; Credit Losses (Topic 326), Derivatives and Hedging (Topic 815) and Leases (Topic 842), &lt;/font&gt;which defers the effective date for public filers that are considered small reporting companies as defined by the Securities and Exchange Commission to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years. Since the Company is a smaller reporting company, implementation is not needed until January 1, 2023. 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 is evaluating the impact of this standard on its consolidated financial statements, including accounting policies, processes, and systems, and expects the standard will have a minor impact on its consolidated financial statements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;In December 2019, the FASB issued ASU 2019-12, &lt;font style="font-style: italic;"&gt;Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes&lt;/font&gt;. ASU 2019-12 will simplify the accounting for income taxes by removing certain exceptions to the general principles in Topic 740. The amendments also improve consistent application of and simplify GAAP for other areas of Topic 740 by clarifying and amending existing guidance. For public business entities, the amendments in this ASU are effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2020. For all other entities, the amendments are effective for fiscal years beginning after December 15, 2021, and interim periods within fiscal years beginning after December 15, 2022. The Company is evaluating the impact of the adoption of ASU 2019-12, but does not expect it to have a material impact on income taxes as reported in 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_ca4698a863844f5eb3fd33f2646ea61b" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U001" decimals="INF">1</us-gaap:StockIssuedDuringPeriodSharesConversionOfUnits>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_4cf9a648d541430db857b2d285d9a8c1" contextRef="c20200101to20200331_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_805a1dac8b6d42c6acacefd55e16cafa" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">70478</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_a995983b23fb44828c87c844051c2c58" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">66375</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_fcd78a1cfece437a9190dd76047fe448" contextRef="c20190101to20190331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Share-based Payment Arrangement, Option [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_c8bcc3c540d64145ab42527da8aeb153" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U001" decimals="INF">0</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_5c3b72c9184e4c89b4fcfcec6c288565" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U001" decimals="INF">44446</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Stock issued upon exercise of stock options (in shares)-Share-based Payment Arrangement, Option [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised id="Fact_67f533e47722477a8fce4e0a7b350b55" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U001" decimals="INF">26032</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <!--Shares Issued, Shares, Share-based Payment Arrangement, after Forfeiture-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation id="Fact_276954a4815f47408f791fcc4ee24a8f" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">53571</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <!--Shares issued (in shares)-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues id="Fact_796d67d9a0bf461b80e0c1c240c9798e" contextRef="c20170314to20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">397502</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_1fae741a399242b5aa7b8436201f528c" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">60000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_2892bae7e5a04898adff13e621a1129e" contextRef="c20190101to20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_3e890ef885ba4f5e9c4cc1c98284c04d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">175000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_3fcd4be4a4f342518b93c90e982894bb" contextRef="c20190101to20190331_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_497bd9dd5c0a4987b75fcd7129bb2918" contextRef="c20200101to20200331_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_4993f986981f4c83bb4bbd2ccdc56659" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_6344011bb885488a81226cea11a095ba" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">60000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Additional Paid-In Capital [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_86437f55a5cb4558a3edc0f353a93ee2" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">175000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Deficit [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_899db35d570f4ac9b48e4b4b307c9265" contextRef="c20200101to20200331_StatementEquityComponentsAxis_RetainedEarningsMember" 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_a6e8fef0f6ec48a18b0dfc063ceff46e" contextRef="c20190101to20190331_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_dd081f2fc3e94e9a83f23004a32b2c8f" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, Stock Options Exercised-Accumulated Deficit [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised id="Fact_fced05726bfb465bbf99ee5e223feab6" contextRef="c20190101to20190331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <!--Stock Issued During Period, Value, New Issues-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueNewIssues id="Fact_9c0b578907b545e9837297db2a926a82" contextRef="c20170314to20170314_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">2981000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <!--Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation id="Fact_8fb86fab23644e619420f6f890efedfc" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U002" decimals="-3">3403000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <!--Number of shares repurchased/surrender in exchange (in shares)-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_0111f2ef5c074e68857b506c8ba7cc6a" contextRef="c20190701to20190930_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U001" decimals="INF">154821</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Number of shares repurchased/surrender in exchange (in shares)-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-Common Class A [Member]-->
  <us-gaap:StockRepurchasedDuringPeriodShares id="Fact_46596847f145431cb3587ef72cf0e9fc" contextRef="c20190814to20190814_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">214286</us-gaap:StockRepurchasedDuringPeriodShares>
  <!--Stockholders' Equity Note Disclosure [Text Block]-->
  <us-gaap:StockholdersEquityNoteDisclosureTextBlock id="Fact_3a0329a854164ef88a7fe4e7ee38ae65" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000; font-weight: bold;"&gt;NOTE 12 &amp;#8211; COMMON STOCK&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;During the three months ended March 31, 2020 and 2019, ACM issued 70,478 and 66,375 shares of Class A common stock upon option exercises by employees and non-employees, respectively.&amp;#160; During the three months ended March 31, 2020, ACM issued 64,717 shares of Class A common stock upon a cashless warrant exercise by a non-employee.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;There were issued and outstanding 16,317,346 shares of Class A common stock and 1,862,608 shares of Class B common stock at March 31, 2020,&amp;#160; and 16,182,151 shares of Class A common stock and 1,862,608 shares of Class B common stock at December 31, 2019.&lt;/div&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_dbd9133b152845178ebec490c87dcc2c" contextRef="c20191231" unitRef="U002" decimals="-3">97321000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_e0cd65bc1e04494d946c51f361826ba9" contextRef="c20200331" unitRef="U002" decimals="-3">98942000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_0177d14a88ed471db3e950b64b3f5de3" contextRef="c20181231" unitRef="U002" decimals="-3">52324000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:StockholdersEquity id="Fact_13f9c26bc3b34114bf78ed63b11fbf44" contextRef="c20181231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-3387000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_1ff60f438482427bb94d58cd531dd504" contextRef="c20191231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-1675000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_2c9a4364a4db40ae9d201a5019fc138b" contextRef="c20191231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">83487000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_9e63d9e7375b490db6c6570ffb809b96" contextRef="c20191231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_b29f64a3d93445ce8fad6e985d092026" contextRef="c20181231_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:StockholdersEquity id="Fact_b6d6db50f4294c27844f69c073b26a5c" contextRef="c20191231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">15507000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_cd572dc6af3248a8973a3e52c65b1ac8" contextRef="c20181231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-857000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_d7f75f722bd64ca4ba42893da8d04296" contextRef="c20181231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_e58574c247024eefae7b6d8773989d55" contextRef="c20191231_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">2000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_fc83a4ef6c82436bb26e5a890e434022" contextRef="c20181231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">56567000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-->
  <us-gaap:StockholdersEquity id="Fact_1826036173aa46d990cfa45df89572d7" contextRef="c20190331" unitRef="U002" decimals="-3">55642000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:StockholdersEquity id="Fact_364468f48975488baffcb6d4c951d647" contextRef="c20190331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">-1530000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class A [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_53782c173f3749a0aecbba67f2ab1f20" contextRef="c20190331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">1000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class B [Member]-->
  <us-gaap:StockholdersEquity id="Fact_7a3e8331bc2c4a5ea7ff8d9e083b7b8c" contextRef="c20200331_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_7e6f022cac414188a6a78d39f0b1129b" contextRef="c20190331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-200000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Accumulated Deficit [Member]-->
  <us-gaap:StockholdersEquity id="Fact_9b14db5e0f094fe4bbc7ae7b7ee9985c" contextRef="c20200331_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U002" decimals="-3">17212000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Additional Paid-In Capital [Member]-->
  <us-gaap:StockholdersEquity id="Fact_9df82694e9e24d73b074a3204746b587" contextRef="c20190331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">57371000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Stock [Member]-Common Class A [Member]-->
  <us-gaap:StockholdersEquity id="Fact_a2ad6b5fb6044866bd4a8d84c2850276" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">2000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-Common Class B [Member]-Common Stock [Member]-->
  <us-gaap:StockholdersEquity id="Fact_a2cf927498504d89a2a7ef989519d91c" contextRef="c20190331_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_c03c20eca65b4cbfb4060a0948bf87e5" contextRef="c20200331_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U002" decimals="-3">84351000</us-gaap:StockholdersEquity>
  <!--Stockholders' Equity Attributable to Parent-AOCI Attributable to Parent [Member]-->
  <us-gaap:StockholdersEquity id="Fact_d002c9367bab411f83afb8b3d0700f8e" contextRef="c20200331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">-2623000</us-gaap:StockholdersEquity>
  <!--Unrecognized tax benefits-->
  <us-gaap:UnrecognizedTaxBenefits id="Fact_9bceae14b4dd48898b6eae9dd10edd56" contextRef="c20200331" unitRef="U002" decimals="-3">44000</us-gaap:UnrecognizedTaxBenefits>
  <!--Use of Estimates-->
  <us-gaap:UseOfEstimates id="Fact_5e050c9b435c40a2be125826ea974e16" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Use of Estimates&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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_0abdd74cbec34b13855b6d1d28cbcaf0" contextRef="c20200101to20200331" unitRef="U001" decimals="0">2946273</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number Diluted Shares Outstanding Adjustment-->
  <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment id="Fact_be7ac78e1b4f47fb934bfed87ce15e46" contextRef="c20190101to20190331" unitRef="U001" decimals="0">2180662</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_ebf8bc1da9c44623bc3569aa79157985" contextRef="c20190101to20190331" unitRef="U001" decimals="0">16044655</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Weighted Average Number of Shares Outstanding, Basic-->
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic id="Fact_f018fce85bb442babf23db26755417a8" contextRef="c20200101to20200331" unitRef="U001" decimals="0">18120363</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_2351a770ee81453e804de9b9db7c5db1" contextRef="c20190101to20190331" unitRef="U001" decimals="0">18225317</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--Diluted (in shares)-->
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding id="Fact_569867210ae7454ebf37aafed98a1d94" contextRef="c20200101to20200331" unitRef="U001" decimals="0">21066636</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <!--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_d37132352e65402d9e9671be65bd9c45" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" 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, Non Employee Stock Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue id="Fact_69c3807b114045d0a77bd77f77354097" contextRef="c20200101to20200331_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]-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue id="Fact_a8c65484b06d4ebdaa9e19a7c153d0e6" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageGrantDateFairValue>
  <!--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]-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue id="Fact_2c7f696e101b4f7481f92dd442f427cf" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U003" decimals="0">0</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, Non Employee Stock Option [Member]-->
  <acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue id="Fact_ebd9021c50be48da86b9b9fb0826cb29" contextRef="c20200101to20200331_AwardTypeAxis_ShareBasedPaymentArrangementNonEmployeeStockOptionMember" unitRef="U003" decimals="2">0.44</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_38b69c37404b4fa989ce90e18f277b25" contextRef="c20200101to20200331_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U003" decimals="2">1.31</acmr:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedInPeriodWeightedAverageGrantDateFairValue>
  <!--Number of Subsidiaries-Foreign Tax Authority [Member]-->
  <acmr:NumberOfSubsidiaries id="Fact_b78e83273068464d8c71e1baa80f3ed5" contextRef="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember" unitRef="U010" decimals="INF">2</acmr:NumberOfSubsidiaries>
  <!--Effective period of preferential income tax rate-Foreign Tax Authority [Member]-->
  <acmr:EffectivePeriodOfPreferentialIncomeTaxRate id="Fact_b06f577ce325414baf0c971fc653dc48" contextRef="c20200101to20200331_IncomeTaxAuthorityAxis_ForeignCountryMember">P3Y</acmr:EffectivePeriodOfPreferentialIncomeTaxRate>
  <!--Related Party Transaction, Prepaid Expense from Related Party-Ninebell Co., Ltd [Member]-->
  <acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty id="Fact_1847db5b616046b4927585b6d2a4a771" contextRef="c20200331_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">648000</acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty>
  <!--Related Party Transaction, Prepaid Expense from Related Party-Ninebell Co., Ltd [Member]-->
  <acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty id="Fact_eb0fb63cbd5f40be8ae04fb4ad33daec" contextRef="c20191231_RelatedPartyTransactionsByRelatedPartyAxis_NinebellCoLtdMember" unitRef="U002" decimals="-3">348000</acmr:RelatedPartyTransactionPrepaidExpenseFromRelatedParty>
  <!--Investment Repayment Period-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <acmr:InvestmentRepaymentPeriod id="Fact_37368a78541d4a32a5ae309c616be752" contextRef="c20200101to20200331_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember">P60D</acmr:InvestmentRepaymentPeriod>
  <!--Cash Delivered as of Close of Business-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <acmr:CashDeliveredAsOfCloseOfBusiness id="Fact_e95c431174d14d7f93e91f90a01f127f" contextRef="c20161209_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U005" decimals="-3">20124000</acmr:CashDeliveredAsOfCloseOfBusiness>
  <!--Cash Delivered as of Close of Business-Shengxin (Shanghai) Management Consulting Limited Partnership [Member]-->
  <acmr:CashDeliveredAsOfCloseOfBusiness id="Fact_f319ec04d7bc424897ceebba2f002238" contextRef="c20161209_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember" unitRef="U002" decimals="-3">2981000</acmr:CashDeliveredAsOfCloseOfBusiness>
  <!--Voting Rights per Share-Common Class B [Member]-->
  <acmr:VotingRightsPerShare id="Fact_a923dcb0cc084f339f262508c1091815" contextRef="c20200331_StatementClassOfStockAxis_CommonClassBMember" unitRef="U009" decimals="INF">20</acmr:VotingRightsPerShare>
  <!--Voting Rights per Share-Common Class A [Member]-->
  <acmr:VotingRightsPerShare id="Fact_d66147e2043442ad90f4897cd8708df0" contextRef="c20200331_StatementClassOfStockAxis_CommonClassAMember" unitRef="U009" decimals="INF">1</acmr:VotingRightsPerShare>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_8607041faebf4c878be4d1306bd8bccc" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Comprehensive Income (Loss) Attributable to Redeemable Non-controlling Interests-->
  <acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests id="Fact_f8616ffbb35e4b97ba16efbc0b88574d" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">-694000</acmr:ComprehensiveIncomeLossAttributableToRedeemableNonControllingInterests>
  <!--Redeemable Non-Controlling Interests [Text Block]-->
  <acmr:RedeemableNonControllingInterestsTextBlock id="Fact_8cff01511d6c4aaca8152b16a845f937" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 13 &amp;#8211; REDEEMABLE NON-CONTROLLING INTERESTS&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="color: #000000;"&gt;The components of the change in the redeemable non-controlling interests for the three months ended March 31, 2020 are presented in the following table:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 80%; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; text-align: left;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Balance at December 31, 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;60,162&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 68%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;258&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 18pt;"&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%; 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: #000000;"&gt;(953&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;&lt;div style="color: #000000;"&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 68%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); font-weight: bold; text-indent: -9pt; margin-left: 9pt;"&gt;Balance at March 31, 2020&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;59,467&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:RedeemableNonControllingInterestsTextBlock>
  <!--Stock Issued During Period, Shares, Common Stock Warrant Exercised-Common Class B [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised id="Fact_7fb515abc80d49918433dd6084bcad45" contextRef="c20200101to20200331_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_bb0781a7cda04290b28346093f420ef5" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="INF">64717</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_c564d4f7bf394b5c927cffb8f64e9ce7" contextRef="c20180330to20180330_RelatedPartyTransactionsByRelatedPartyAxis_ShengxinShanghaiManagementConsultingLimitedPartnershipSMCMember_StatementClassOfStockAxis_CommonClassAMember" unitRef="U001" decimals="INF">397502</acmr:StockIssuedDuringPeriodSharesCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-AOCI Attributable to Parent [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_073460345a2a43eba2c0548babe5f7ae" contextRef="c20200101to20200331_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Accumulated Deficit [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_895967ff4ca34edeba25f3cf2fdc15f4" contextRef="c20200101to20200331_StatementEquityComponentsAxis_RetainedEarningsMember" 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_a4a4174d238b48c880a4865f96789725" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassBMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-Common Class A [Member]-Common Stock [Member]-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_e0af3450be5a4bcaa065d673a03df36f" contextRef="c20200101to20200331_StatementClassOfStockAxis_CommonClassAMember_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Stock Issued During Period, Value, Common Stock Warrant Exercised-->
  <acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised id="Fact_eec667a4e1f245b8b8b1751ce21bc71f" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">0</acmr:StockIssuedDuringPeriodValueCommonStockWarrantExercised>
  <!--Long-Term Investment [Table Text Block]-->
  <acmr:LongTermInvestmentTableTextBlock id="Fact_45c74ac5245249d8933d93531b8926e2" contextRef="c20200101to20200331">&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 equity method.&lt;/div&gt;&lt;div&gt;&amp;#160;&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;&lt;div style="color: #000000;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: #000000;"&gt;Ninebell&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;1,694&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,538&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Shengyi&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;109&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;107&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="color: #000000;"&gt;Hefei Shixi&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 style="color: #000000;"&gt;4,212&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: #000000;"&gt;4,289&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: middle; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;6,015&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,934&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LongTermInvestmentTableTextBlock>
  <!--Lessee, Operating Lease, Weighted Average Remaining Lease Term and Discount Rate [Table Text Block]-->
  <acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock id="Fact_5a7a225c08db4cef8f2edd6868b8d420" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;The weighted average remaining lease terms and discount rates for all operating leases were as follows as of March 31, 2020:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; 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" 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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;March 31, 2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;December 31, 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Remaining lease term and discount rate:&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;/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="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Weighted average remaining lease term (years)&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;2.80&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;3.02&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 76%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: rgb(0, 0, 0); text-indent: -9pt; margin-left: 9pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;5.43&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div&gt;5.43&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LesseeOperatingLeaseWeightedAverageRemainingLeaseTermAndDiscountRateTableTextBlock>
  <!--Lessee Operating Lease Supplemental Cash Flow Information Related to Operating Leas [Table Text Block]-->
  <acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock id="Fact_e1d31f4d6723490e90c8b1faacebb59f" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000;"&gt;Supplemental cash flow information related to operating leases was as follows for the period ended March 31, 2020 and 2019 respectively:&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: middle; border-bottom: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;Three Months Ended March 31,&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; padding-bottom: 2px; text-indent: -9pt; margin-left: 9pt;"&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;2020&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: #000000 solid 2px;"&gt;&lt;div style="text-align: center; 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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-indent: -9pt; margin-left: 9pt;"&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;"&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: middle; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);"&gt;&lt;div style="text-indent: -9pt; margin-left: 18pt;"&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;427&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;455&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: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LesseeOperatingLeaseSupplementalCashFlowInformationRelatedToOperatingLeasTableTextBlock>
  <!--Number of Major Customers-Accounts Receivable [Member]-->
  <acmr:NumberOfMajorCustomers id="Fact_3bace664ab9240968305b782afb58bcd" contextRef="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember" unitRef="U007" decimals="INF">3</acmr:NumberOfMajorCustomers>
  <!--Number of Major Customers-Revenue Benchmark [Member]-->
  <acmr:NumberOfMajorCustomers id="Fact_4b4dde9427de4866b1696cb23010977d" contextRef="c20190101to20190331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember" unitRef="U007" decimals="INF">3</acmr:NumberOfMajorCustomers>
  <!--Number of Major Customers-Accounts Receivable [Member]-->
  <acmr:NumberOfMajorCustomers id="Fact_68506e15c30541568cc8b6fff59fd12a" contextRef="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember" unitRef="U007" decimals="INF">3</acmr:NumberOfMajorCustomers>
  <!--Number of Major Customers-Revenue Benchmark [Member]-->
  <acmr:NumberOfMajorCustomers id="Fact_b03e20a784e3428e9a45ad262de18df0" contextRef="c20200101to20200331_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember" unitRef="U007" decimals="INF">3</acmr:NumberOfMajorCustomers>
  <!--COVID-19 Assessment [Policy Text Block]-->
  <acmr:COVID19AssessmentPolicyTextBlock id="Fact_0520bbfceee045569c55440bd927f237" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div&gt;&lt;u&gt;COVID-19 Assessment&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;font style="color: #000000;"&gt;The outbreak of COVID&amp;#8209;19, the coronavirus, has grown both in the United States and globally, and related government and private sector responsive actions have adversely affected the Company&amp;#8217;s business operations. COVID&amp;#8209;19 originated in Wuhan, China, in December 2019, and a series of emergency quarantine measures taken by the PRC government disrupted domestic business activities in the PRC during the weeks after the initial outbreak of COVID&amp;#8209;19. Since that time, an increasing number of countries, including the United States, have imposed restrictions on travel to and from the PRC and elsewhere, as well as general movement restrictions, business closures and other measures imposed to slow the spread of COVID&amp;#8209;19. The situation continues to develop rapidly, however, and it is impossible to predict the effect and ultimate impact of the COVID&amp;#8209;19 outbreak on the Company&amp;#8217;s business operations and results. While the quarantine, social distancing and other regulatory measures instituted or recommended in response to COVID&amp;#8209;19 are expected to be temporary, the duration of the business disruptions, and related financial impact, cannot be estimated at this time. The COVID&amp;#8209;19 &lt;/font&gt;outbreak has been declared a worldwide health pandemic that &lt;font style="color: #000000;"&gt;could adversely affect the economies and financial markets of many countries, resulting in an economic downturn and changes in global economic policy that could reduce demand for the Company&amp;#8217;s products and its customers&amp;#8217; chips and have a material adverse impact on the Company&amp;#8217;s business, operating results and financial condition.&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</acmr:COVID19AssessmentPolicyTextBlock>
  <!--Basis of Presentation and Principles of Consolidation [Policy Text Block]-->
  <acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock id="Fact_086a625ffefc43689b791242a3a8cc00" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;u&gt;Basis of Presentation and Principles of Consolidation&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The Company&amp;#8217;s consolidated financial statements include the accounts of ACM and its subsidiaries including ACM Shanghai and its subsidiaries, which include ACM Wuxi, ACM Shengwei, and CleanChip (the subsidiaries of which include ACM California and ACM Korea). ACM&amp;#8217;s 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; color: #000000;"&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 Securities and Exchange Commission 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, 2019 included in ACM&amp;#8217;s Annual Report on Form 10-K for the year ended December 31, 2019.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;The accompanying condensed consolidated balance sheet as of March 31, 2020, the condensed consolidated statements of operations and comprehensive income for the three months ended March 31, 2020 and 2019, the condensed consolidated statements of changes in stockholders&amp;#8217; equity for the three months ended March 31, 2020 and 2019, and the condensed consolidated statements of cash flows for the three months ended March 31, 2020 and 2019 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 March 31, 2020 and the results of operations for the three months ended March 31, 2020 are not necessarily indicative of the results to be expected for any future period.&lt;/div&gt;&lt;/div&gt;</acmr:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock>
  <!--Investment in Partnership-Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership [Member]-->
  <acmr:InvestmentInPartnership id="Fact_757eab5ddd7741f7aac8a7d6ba35227c" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember" unitRef="U002" decimals="-3">4200000</acmr:InvestmentInPartnership>
  <!--Ownership Percentage in Partnership-Hefei Shixi Chanheng Integrated Circuit Industry Venture Capital Fund Partnership [Member]-->
  <acmr:OwnershipPercentageInPartnership id="Fact_a05c5e38cb824c6793bb9450262e8362" contextRef="c20190930_RelatedPartyTransactionsByRelatedPartyAxis_HefeiShixiChanhengIntegratedCircuitIndustryVentureCapitalFundPartnershipMember" unitRef="U004" decimals="1">0.1</acmr:OwnershipPercentageInPartnership>
  <!--long-term investment [Text Block]-->
  <acmr:LongTermInvestmentTextBlock id="Fact_34d0079a0fd04b48bf588189948e09c5" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;NOTE 10 &amp;#8211; LONG-TERM INVESTMENT&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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. The investment in Ninebell is accounted for under the equity method.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&gt;On June 27, 2019, 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 equity method.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div style="text-align: justify; color: #000000;"&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) (&amp;#8220;Hefei Shixi&amp;#8221;), a Chinese limited partnership based in Hefei, China. Pursuant to such Partnership Agreement, on September 30, 2019, ACM Shanghai invested $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 equity method.&lt;/div&gt;&lt;div&gt;&amp;#160;&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;&lt;div style="color: #000000;"&gt;&amp;#160;&lt;/div&gt;&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/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="color: #000000;"&gt;Ninebell&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div&gt;1,694&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;1,538&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 66%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Shengyi&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;109&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;107&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 66%; background-color: rgb(204, 238, 255); padding-bottom: 2px;"&gt;&lt;div style="color: #000000;"&gt;Hefei Shixi&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 style="color: #000000;"&gt;4,212&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: #000000;"&gt;4,289&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: middle; width: 66%; padding-bottom: 4px; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;6,015&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;$&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;5,934&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: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:LongTermInvestmentTextBlock>
  <!--Accrued Machine Testing Fees, Current-->
  <acmr:AccruedMachineTestingFeesCurrent id="Fact_26f3572651134ed3b685d4b4cb297053" contextRef="c20191231" unitRef="U002" decimals="-3">1456000</acmr:AccruedMachineTestingFeesCurrent>
  <!--Accrued Machine Testing Fees, Current-->
  <acmr:AccruedMachineTestingFeesCurrent id="Fact_34095815f30b4b6ebe22c1849cb702a7" contextRef="c20200331" unitRef="U002" decimals="-3">1424000</acmr:AccruedMachineTestingFeesCurrent>
  <!--Direct or Indirect Interests in Subsidiaries [Table Text Block]-->
  <acmr:DirectOrIndirectInterestsInSubsidiariesTableTextBlock id="Fact_2cd90c19da3d49a1ab1e9a66ed79cc33" contextRef="c20200101to20200331">&lt;div style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;div style="text-align: justify; color: #000000;"&gt;&lt;font style="background-color: #FFFFFF;"&gt;The Company has direct or indirect interests in the following subsidiaries:&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;table 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: middle; width: 33%;"&gt;&amp;#160;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;&amp;#160;&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="6" nowrap="nowrap" valign="bottom" style="vertical-align: middle;"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;Effective interest held as at&lt;/div&gt;&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; border-bottom: 2px solid rgb(0, 0, 0); width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;Name of subsidiaries&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); width: 33%;"&gt;&lt;div style="font-weight: bold;"&gt;&lt;div style="font-weight: bold;"&gt;Place and date of&lt;/div&gt;incorporation&lt;/div&gt;&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;March 31,&lt;/div&gt;2020&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: middle; border-bottom: 2px solid rgb(0, 0, 0);"&gt;&lt;div style="text-align: center; color: #000000; font-weight: bold;"&gt;&lt;div style="color: #000000; font-weight: bold;"&gt;December 31,&lt;/div&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;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Shanghai), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;China, May 2006&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Wuxi), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;China, July 2011&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;CleanChip Technologies Limited&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Hong Kong, June 2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research Korea CO., LTD.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;Korea, December 2017&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Shangwei Research (Shanghai), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;China, March 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (CA), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: middle; width: 33%; background-color: rgb(255, 255, 255);"&gt;&lt;div style="color: #000000;"&gt;USA, June 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;91.7&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #FFFFFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;ACM Research (Cayman), Inc.&lt;/div&gt;&lt;/td&gt;&lt;td valign="bottom" style="vertical-align: bottom; width: 33%; background-color: rgb(204, 238, 255);"&gt;&lt;div style="color: #000000;"&gt;Cayman Islands, April 2019&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;100.0&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #000000;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&amp;#160;&lt;/td&gt;&lt;td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;100.0&lt;/div&gt;&lt;/td&gt;&lt;td colspan="1" nowrap="nowrap" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;"&gt;&lt;div style="color: #0D0D0D;"&gt;%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</acmr:DirectOrIndirectInterestsInSubsidiariesTableTextBlock>
  <!--Capital Injected in Subsidiary-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:CapitalInjectedInSubsidiary id="Fact_67065b5b928a405197a9008720c6c245" contextRef="c20200331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U002" decimals="-3">142000</acmr:CapitalInjectedInSubsidiary>
  <!--Name of Date of Incorporation-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_13a7f7cc105d4e96adc2038259a17ddc" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">China, March 2019</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-CleanChip Technologies Limited [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_54b112cd56ce4cdfaa39849997e5c468" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">Hong Kong, June 2017</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-ACM Research (CA), Inc. [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_60110b87757d4c1c8135dffc0083c556" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">USA, June 2019</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-ACM Research (Wuxi), Inc. [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_69386351a91640eea9721eb92e7cb23c" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">China, July 2011</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_7e7d339ef13440c9b618bb2323429f66" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">China, May 2006</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-ACM Research (Cayman), Inc. [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_cfb4b66d38d9418f9c8e650c648e10a8" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">Cayman Islands, April 2019</acmr:NameOfDateOfIncorporation>
  <!--Name of Date of Incorporation-ACM Research Korea CO., LTD [Member]-->
  <acmr:NameOfDateOfIncorporation id="Fact_d71e1628185048d9af0c9c2225aac689" contextRef="c20200101to20200331_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">Korea, December 2017</acmr:NameOfDateOfIncorporation>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-Second Tranche Investors [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_2f6413681dfe4b6cb1873e971da9931a" contextRef="c20191129to20191129_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember" unitRef="U002" decimals="-3">32400000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-Second Tranche Investors [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_42c0cb61c4b4452382ac499e9a9c3b62" contextRef="c20191129to20191129_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember" unitRef="U005" decimals="-3">228200000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-First Tranche Investors [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_7d629fc0471f42e1adfa8f3ce9254a07" contextRef="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember" unitRef="U005" decimals="-3">187900000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Purchase Price of Stock Agreed by Investors-ACM Research (Shanghai), Inc. [Member]-First Tranche Investors [Member]-->
  <acmr:PurchasePriceOfStockAgreedByInvestors id="Fact_e69a35a4e15441fe845e8b271d1270b0" contextRef="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember" unitRef="U002" decimals="-3">27300000</acmr:PurchasePriceOfStockAgreedByInvestors>
  <!--Name of Subsidiary-ACM Research (CA), Inc. [Member]-->
  <acmr:NameOfSubsidiary id="Fact_21340beef4204974a7c92071bba03d37" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember">ACM Research (CA), Inc.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:NameOfSubsidiary id="Fact_580f1df48cff416b9a1e2e268afbcc31" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">ACM Research (Shanghai), Inc.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-ACM Research (Wuxi), Inc. [Member]-->
  <acmr:NameOfSubsidiary id="Fact_8c152d916801440f996155437e822cac" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember">ACM Research (Wuxi), Inc.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-ACM Research Korea CO., LTD [Member]-->
  <acmr:NameOfSubsidiary id="Fact_9f06d7b7ecaf4d81b6c45ddcc62d0552" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember">ACM Research Korea CO., LTD.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:NameOfSubsidiary id="Fact_a7146b4e1fa147388c9c60e2fce1d3db" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember">Shangwei Research (Shanghai), Inc.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-ACM Research (Cayman), Inc. [Member]-->
  <acmr:NameOfSubsidiary id="Fact_c4c7ef29ec204601b00f2025a6c0beba" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember">ACM Research (Cayman), Inc.</acmr:NameOfSubsidiary>
  <!--Name of Subsidiary-CleanChip Technologies Limited [Member]-->
  <acmr:NameOfSubsidiary id="Fact_e9ddeecfe11f4e57bca3401dd9709119" contextRef="c20190101to20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember">CleanChip Technologies Limited</acmr:NameOfSubsidiary>
  <!--Subsidiaries Ownership Percentage-CleanChip Technologies Limited [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_027952c04cf941d79d2d7a676621370f" contextRef="c20191231_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (CA), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_18053fda583340e885705a864ef0f6b5" contextRef="c20200331_ConsolidatedEntitiesAxis_ACMResearchCAIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_2f7019585ce8419ea5b5da9e29a1a0fb" contextRef="c20200331_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Wuxi), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_6d60759ffb934be09388e8cfb1044c74" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Wuxi), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_78ebaf4de7a944f5ab22fe015825435b" contextRef="c20200331_ConsolidatedEntitiesAxis_ACMResearchWuxiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_7d9fa234b43a4b0e8101f3ec843db5ae" contextRef="c20200331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research Korea CO., LTD [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_863b3b7478034209995e5407c1f69a49" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research Korea CO., LTD [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_91b2abd571244b3eae4d9af8f23e714a" contextRef="c20200331_ConsolidatedEntitiesAxis_ACMResearchKoreaCOLTDMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Cayman), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_99c5a75dca67494689faecfe344f4d3e" contextRef="c20200331_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember" unitRef="U004" decimals="INF">1.0000</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_b0f63071f9fd46839abe9e78ad5b676f" contextRef="c20191231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-CleanChip Technologies Limited [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_bfd44f6cb07347e9865be7b2f331c454" contextRef="c20200331_ConsolidatedEntitiesAxis_CleanChipTechnologiesLimitedMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (CA), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_c10b94f79b7d4a8888cec110092d1f83" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchCAIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Cayman), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_c424313627bf4dd1975d79036a0d59c0" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchCaymanIncMember" unitRef="U004" decimals="INF">1.0000</acmr:SubsidiariesOwnershipPercentage>
  <!--Subsidiaries Ownership Percentage-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:SubsidiariesOwnershipPercentage id="Fact_ddb503394541425a8f304e0ca4af87e7" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember" unitRef="U004" decimals="INF">0.9170</acmr:SubsidiariesOwnershipPercentage>
  <!--Percentage of Outstanding Shares to be Sold to Investors-ACM Research (Shanghai), Inc. [Member]-First Tranche Investors [Member]-->
  <acmr:PercentageOfOutstandingSharesToBeSoldToInvestors id="Fact_b21fb3b7564e44c1b614f766f7211dee" contextRef="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember" unitRef="U004" decimals="3">0.042</acmr:PercentageOfOutstandingSharesToBeSoldToInvestors>
  <!--Business Acquisition, Percentage of Equity Interests Acquired-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired id="Fact_0818bcd34f2148268cc511f16c964e33" contextRef="c20191231_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U004" decimals="4">0.9170</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
  <!--Business Acquisition, Percentage of Equity Interests Acquired-Second Tranche Investors [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired id="Fact_796bffafba454438aebbcb77f0686322" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember" unitRef="U004" decimals="4">0.0450</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
  <!--Business Acquisition, Percentage of Equity Interests Acquired-First Tranche Investors [Member]-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired id="Fact_d0b407ea90f64987a9d3164a891c1370" contextRef="c20191231_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember" unitRef="U004" decimals="4">0.0380</acmr:BusinessAcquisitionPercentageOfEquityInterestsAcquired>
  <!--Number of Investors with Agreements Entered-ACM Research (Shanghai), Inc. [Member]-First Tranche Investors [Member]-->
  <acmr:NumberOfInvestorsWithAgreementsEntered id="Fact_237da617735f4c8da443b21bbd5e73a8" contextRef="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_FirstTrancheInvestorsMember" unitRef="U006" decimals="INF">7</acmr:NumberOfInvestorsWithAgreementsEntered>
  <!--Number of Investors with Agreements Entered-ACM Research (Shanghai), Inc. [Member]-Second Tranche Investors [Member]-->
  <acmr:NumberOfInvestorsWithAgreementsEntered id="Fact_c3185fadde42426b9ace8d3fe68bc00d" contextRef="c20191129to20191129_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember_RelatedPartyTransactionAxis_SecondTrancheInvestorsMember" unitRef="U006" decimals="INF">8</acmr:NumberOfInvestorsWithAgreementsEntered>
  <!--Number of Investors with Agreements Entered-Shengyi Semiconductor Technology Company Limited [Member]-->
  <acmr:NumberOfInvestorsWithAgreementsEntered id="Fact_2b424faa62834c7ba10b0d10ab66ae04" contextRef="c20190905to20190905_RelatedPartyTransactionsByRelatedPartyAxis_ShengyiSemiconductorTechnologyCompanyLimitedMember" unitRef="U001" decimals="INF">6</acmr:NumberOfInvestorsWithAgreementsEntered>
  <!--Term to complete listing of shares-ACM Research (Shanghai), Inc. [Member]-->
  <acmr:TermToCompleteListingOfShares id="Fact_c14df751401d4c39a70847e4ee9f9ea7" contextRef="c20190601to20190630_ConsolidatedEntitiesAxis_ACMResearchShanghaiIncMember">P3Y</acmr:TermToCompleteListingOfShares>
  <!--Registered Capital-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:RegisteredCapital id="Fact_2ef87c8965b34bfeb00b2e1d9429be05" contextRef="c20190331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U002" decimals="-3">727000</acmr:RegisteredCapital>
  <!--Registered Capital-Shengwei Research (Shanghai), Inc. [Member]-->
  <acmr:RegisteredCapital id="Fact_7e42bc336bed4fad92c80326fe5e7cf9" contextRef="c20190331_ConsolidatedEntitiesAxis_ShengweiResearchShanghaiIncMember" unitRef="U005" decimals="-3">5000000</acmr:RegisteredCapital>
  <!--Warrant conversion to common stock-->
  <acmr:WarrantConversionToCommonStock id="Fact_82db045b6d6345a6891206324d435772" contextRef="c20190101to20190331" unitRef="U002" decimals="-3">0</acmr:WarrantConversionToCommonStock>
  <!--Warrant conversion to common stock-->
  <acmr:WarrantConversionToCommonStock id="Fact_8c484f713ad645e7976a80141935f4a5" contextRef="c20200101to20200331" unitRef="U002" decimals="-3">399000</acmr:WarrantConversionToCommonStock>
</xbrl>
