<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2017-01-31"
  xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:pfie="http://www.profireenergy.com/20200331"
  xmlns:srt="http://fasb.org/srt/2019-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2019-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="pfie-20200331.xsd" xlink:type="simple"/>
    <context id="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="ibc61be0a74a34e81b0986b926637acbb_I20200504">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <instant>2020-05-04</instant>
        </period>
    </context>
    <context id="i314a750644bd41a780767b7bfaa1efe7_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="idfedae5cdef0414dae7a87fb4de24975_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i006d4b794f744412aaf29a7158fc3d84_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i96f4e9eb620b40ec832ab0217eba2783_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i6fcbf5d800524e619b2a41375e10989d_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i373dd8d067e448bc98024bff53099c6b_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="id349bb99f6c34096b6f8fe8aa8944472_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="id4cf6cdbad5f4afb80f7eb1831e195df_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i2c8998ae98144f5f9b66d6048c7f2556_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i6415c1b1ad204d3681fd63a259d3162d_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i81141fab34294c4091cf5514614ac29b_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ia4bd74fcdf53430d963b6dfbb7c711a5_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i93d54813f8ed471fb7ea3324988053b0_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i0c725b7a4ca94f65b673d2ebc8a03ae6_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i7cc4b31cd9e54a63bf4610b656cd143f_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i01e9aac4e28240c191fb8800c089cf90_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i05a5ea7d54b845bd9aa7e22702d351d5_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i5541e2e9a81943cab48e9682a89c5582_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="if760855962394925be6fc8be9b2d13c2_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i34526aa0b61540a2a630f15ba8c844ab_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i25a96fdd886f4af2bb54726ecf8f78db_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i6333afb6db2b4d0fb672b737ce2ee341_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="id05a2c96628749a5a004e9c221928b85_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="iacc32b0469d248efa1f4eaeaac7dfe22_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i6b18274e73cd4c56a6a9f7f9ac073afd_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i27fb5c1a47cf468f85c86b5c49cb523c_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i04b47f70ade44c0c80275e0c5ae1b74f_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i89e49caa002e436ebeaad370511cd429_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i51174fe6c6dc4101a78f199f06658edd_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="ia1d459b0a2604521a1adab679128fe1e_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i2b9ef5e7bfac4438b18e1032c9360e12_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i5cb481d8ae5e406dbea332b46438569c_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="id4a3fa162a774193a408351ca85bcca9_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="i7b153f1687384604893f7dd986571f90_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="ie2f41dad10bd4560a730ad9570b7c57a_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="iaa07b54bdeba44799be8f6ea7315e666_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="id31afd0541a9481ca75ebc561ade36d3_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="idcb090c4deb34f60accdb340009e4d55_D20200304-20200304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-04</startDate>
            <endDate>2020-03-04</endDate>
        </period>
    </context>
    <context id="i087d6bd65a2d4a55bf9390814272f1e3_D20200304-20200304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-04</startDate>
            <endDate>2020-03-04</endDate>
        </period>
    </context>
    <context id="i9c3613f2510242bfb2af94359623f867_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="iaae60d9c116243b0b3db5e414381dd33_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="i06d3764e97e44fde92634072c8e36765_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:ChiefBusinessDevelopmentOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="i1e2745d6cbd943ff97c4f53d192a30dd_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:VicePresidentOfOperationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="i736ed03712a54ea8a5f987d33f25b70c_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:VicePresidentOfProductDevelopmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="i517c1d15c878448a97ef59798d4a6ff7_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:EIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="i31580ed4186e436cbb05eb1e1bdf60f6_D20190422-20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-22</startDate>
            <endDate>2019-04-22</endDate>
        </period>
    </context>
    <context id="ia721535fd6944d24815fd9f1754fe917_D20190422-20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:ChiefBusinessDevelopmentOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-22</startDate>
            <endDate>2019-04-22</endDate>
        </period>
    </context>
    <context id="i9cf4ee038c104982b3df617bc37b9fb9_D20190422-20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:VicePresidentOfOperationsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-22</startDate>
            <endDate>2019-04-22</endDate>
        </period>
    </context>
    <context id="ibfcdef540b4d4739a9aaec92aded06e7_D20190422-20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">pfie:VicePresidentOfProductDevelopmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-22</startDate>
            <endDate>2019-04-22</endDate>
        </period>
    </context>
    <context id="i15d5ffb1f73048e19b424781d08f7201_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="ia95232b84f0442adb97d84ef9294bd77_I20190422">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="iafcad8d3cbd74f3d8e7045f922215c71_D20200304-20200304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ExecutiveOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2017Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-04</startDate>
            <endDate>2020-03-04</endDate>
        </period>
    </context>
    <context id="if4652177fa644ab89e9ec049c4381c01_D20190314-20190314">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-03-14</startDate>
            <endDate>2019-03-14</endDate>
        </period>
    </context>
    <context id="i604e2ca4a571476ebc94c7f3917ead29_I20190314">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-03-14</instant>
        </period>
    </context>
    <context id="if526fb6777404e0ab32916ba855e95a5_D20190612-20190612">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-06-12</startDate>
            <endDate>2019-06-12</endDate>
        </period>
    </context>
    <context id="ia1d25ba0c5b3415099b4e6ab0bc7111d_I20190612">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">pfie:LTIP2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-12</instant>
        </period>
    </context>
    <context id="i9865cbd1238349cb8a973a1ff2d44b10_D20200317-20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
        </entity>
        <period>
            <startDate>2020-03-17</startDate>
            <endDate>2020-03-17</endDate>
        </period>
    </context>
    <context id="ie359b9cb85dd4898a8375bff35bfabed_D20200317-20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-17</startDate>
            <endDate>2020-03-17</endDate>
        </period>
    </context>
    <context id="i872293786f61445692027f3020119fd7_I20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-17</instant>
        </period>
    </context>
    <context id="ibd9cc6e87f484251b26f178e22fc77c3_D20200317-20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-17</startDate>
            <endDate>2020-03-17</endDate>
        </period>
    </context>
    <context id="i486bccade70b47388e13187766e6db4c_D20200317-20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-17</startDate>
            <endDate>2020-03-17</endDate>
        </period>
    </context>
    <context id="i0800c5251eeb4cbe92692f049b108c32_D20200317-20200317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-17</startDate>
            <endDate>2020-03-17</endDate>
        </period>
    </context>
    <context id="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pfie:MillstreamEnergyProductsLTDMEPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-06-18</startDate>
            <endDate>2019-06-18</endDate>
        </period>
    </context>
    <context id="i3510502a2edd4597adefff976a37d7e1_I20190618">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pfie:MillstreamEnergyProductsLTDMEPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-18</instant>
        </period>
    </context>
    <context id="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pfie:MidflowServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-08-05</startDate>
            <endDate>2019-08-05</endDate>
        </period>
    </context>
    <context id="ic6a3440783a0461a80dbcf404eb5d590_I20190805">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pfie:MidflowServicesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-08-05</instant>
        </period>
    </context>
    <context id="ie27e464cae96462dba28ac97d89caa04_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i12f35c34dea74fc6a5dcfd52f565b9fc_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i929a48f923c849f09c03e97c2858ffbb_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ElectronicsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i2d1453707a4c4fd5944f2acdf82e7bfd_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ElectronicsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i6f8c4442149f4a7cacab83e080a02321_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ManufacturedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="iabd2563455cc4a51806830e0bb67de54_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ManufacturedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i6332e83bf03b413a8f767b5fb1528e12_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ReSellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i957562319a84431ab1829cf30540c536_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">pfie:ReSellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="id73434e531e7481ba29117b33afd4869_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i2edde0705e604114971d554d45b3d4ff_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i3ea13b85d44d4e5cb47a2a12dc9c5404_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="id187bf47ab1b473095d61370d0eb121b_D20190101-20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="i209221a50c2e4e329727f422e821f300_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i4e3bd01f5cba431c9a299840fae5769b_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="id7fd469289964304bbb2dac6e6dba4f4_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i861518993bec48f385f4fdae33e5cb15_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iafda40d586f94e10a4f36c6cb0b5d271_D20200421-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pfie:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-21</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i05b08e12f27a461c85068d143d29d868_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001289636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pfie:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80L2ZyYWc6MTg4MDhmYTI5MzI0NDJiNDk2OTJlNGMyZDJjMjhhZTIvdGFibGU6ZmNkZGVmNzk2ZDUzNGI0MDgxZmU4YjgyZGFiOWNhNTEvdGFibGVyYW5nZTpmY2RkZWY3OTZkNTM0YjQwODFmZThiODJkYWI5Y2E1MV81LTEtMS0xLTA_cc1c0fa0-808e-43d6-8e6a-29ebadb8b22b">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80L2ZyYWc6MTg4MDhmYTI5MzI0NDJiNDk2OTJlNGMyZDJjMjhhZTIvdGFibGU6ZmNkZGVmNzk2ZDUzNGI0MDgxZmU4YjgyZGFiOWNhNTEvdGFibGVyYW5nZTpmY2RkZWY3OTZkNTM0YjQwODFmZThiODJkYWI5Y2E1MV82LTEtMS0xLTA_d9699c6e-c453-44ef-855f-25978acb3657">0001289636</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80L2ZyYWc6MTg4MDhmYTI5MzI0NDJiNDk2OTJlNGMyZDJjMjhhZTIvdGFibGU6ZmNkZGVmNzk2ZDUzNGI0MDgxZmU4YjgyZGFiOWNhNTEvdGFibGVyYW5nZTpmY2RkZWY3OTZkNTM0YjQwODFmZThiODJkYWI5Y2E1MV83LTEtMS0xLTA_72350d93-8ecc-4112-9324-3729d81b9add">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80L2ZyYWc6MTg4MDhmYTI5MzI0NDJiNDk2OTJlNGMyZDJjMjhhZTIvdGFibGU6ZmNkZGVmNzk2ZDUzNGI0MDgxZmU4YjgyZGFiOWNhNTEvdGFibGVyYW5nZTpmY2RkZWY3OTZkNTM0YjQwODFmZThiODJkYWI5Y2E1MV8xMy0xLTEtMS0w_5741e184-56df-4448-842d-6737e1c83719">2020</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80L2ZyYWc6MTg4MDhmYTI5MzI0NDJiNDk2OTJlNGMyZDJjMjhhZTIvdGFibGU6ZmNkZGVmNzk2ZDUzNGI0MDgxZmU4YjgyZGFiOWNhNTEvdGFibGVyYW5nZTpmY2RkZWY3OTZkNTM0YjQwODFmZThiODJkYWI5Y2E1MV8xNC0xLTEtMS0w_cb0072c3-5562-489a-96e2-5779041f79b9">Q1</dei:DocumentFiscalPeriodFocus>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="ibd9cc6e87f484251b26f178e22fc77c3_D20200317-20200317"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81ODYvZnJhZzo2ZmI4NGZlN2U1ZDg0YzRiOTE5YzQwNjdjZDI1ZjAwNi90ZXh0cmVnaW9uOjZmYjg0ZmU3ZTVkODRjNGI5MTljNDA2N2NkMjVmMDA2XzM4NDgyOTA2OTc0ODI_1ec042cb-ff2c-46c9-8585-ac3004da6980"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i486bccade70b47388e13187766e6db4c_D20200317-20200317"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81ODYvZnJhZzo2ZmI4NGZlN2U1ZDg0YzRiOTE5YzQwNjdjZDI1ZjAwNi90ZXh0cmVnaW9uOjZmYjg0ZmU3ZTVkODRjNGI5MTljNDA2N2NkMjVmMDA2XzM4NDgyOTA2OTc0ODI_df2b944a-7849-4a54-b86e-c5014fb3f4e1"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="i0800c5251eeb4cbe92692f049b108c32_D20200317-20200317"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81ODYvZnJhZzo2ZmI4NGZlN2U1ZDg0YzRiOTE5YzQwNjdjZDI1ZjAwNi90ZXh0cmVnaW9uOjZmYjg0ZmU3ZTVkODRjNGI5MTljNDA2N2NkMjVmMDA2XzM4NDgyOTA2OTc0ODI_e3c7199d-2a3b-41d8-93d4-94c15de8f6c7"
      unitRef="number">0.3333</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <dei:DocumentType
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV84Mg_4127bc8e-fb27-4d6e-83f0-9d80e770f516">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6NzRiOTQxMTQ4ZmRjNDAwMGJjYzJlZDI2MjliMDExOGMvdGFibGVyYW5nZTo3NGI5NDExNDhmZGM0MDAwYmNjMmVkMjYyOWIwMTE4Y18wLTAtMS0xLTA_8214a38b-25a9-4a9e-837d-c2e2c31895e4">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6NzRiOTQxMTQ4ZmRjNDAwMGJjYzJlZDI2MjliMDExOGMvdGFibGVyYW5nZTo3NGI5NDExNDhmZGM0MDAwYmNjMmVkMjYyOWIwMTE4Y18xLTItMS0xLTA_39abbc64-b766-4ae9-b21a-be981525cd97">2020-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6NzRiOTQxMTQ4ZmRjNDAwMGJjYzJlZDI2MjliMDExOGMvdGFibGVyYW5nZTo3NGI5NDExNDhmZGM0MDAwYmNjMmVkMjYyOWIwMTE4Y18yLTAtMS0xLTA_aea51e65-05c7-430c-a11d-a4c879adc850">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xMTI_8c44d36f-3fec-4a9c-a6ce-274390f50fe6">001-36378</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xMTY_3d633da8-8ec4-4caa-875b-ef24cc535756">PROFIRE ENERGY, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8wLTAtMS0xLTA_e9df7806-7327-4eda-8980-62a16dd56881">NV</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8wLTEtMS0xLTA_b0e70c59-e757-4da1-8a8d-6d1fc4f6743a">20-0019425</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8yLTAtMS0xLTA_5461c4d2-99dd-4fdb-9d46-560a8b1d2550">321 South 1250 West, Suite 1</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8zLTAtMS0xLTAvdGV4dHJlZ2lvbjoxZjdiYmMxMjI5ZGI0MmE0OTk3ZDU5YjM0MzRmOWFlM180_0f623f5a-6b0d-498e-a321-1960be8b4689">Lindon</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8zLTAtMS0xLTAvdGV4dHJlZ2lvbjoxZjdiYmMxMjI5ZGI0MmE0OTk3ZDU5YjM0MzRmOWFlM184_ffdf73b5-b07b-4ce9-b145-9eb0e6ff12b3">UT</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6OGQxOTI5ZjZkMzU5NGZiNzkxMjI0ZmVhZTg5NDkzZDkvdGFibGVyYW5nZTo4ZDE5MjlmNmQzNTk0ZmI3OTEyMjRmZWFlODk0OTNkOV8zLTEtMS0xLTA_e2b73fb9-72ad-4357-b14a-a622f7a3e8fd">84042</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xNzk_7cf89a73-6f13-4772-bb62-cd51d659007a">801</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xODM_ce7c73b3-4a91-49d7-b2b7-286c453e86d7">796-5127</dei:LocalPhoneNumber>
    <dei:EntityCurrentReportingStatus
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV81ODg_0d4a26bc-6714-4e38-8d22-86388421fef5">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV85MTE_95ae5359-6c4c-4630-bcde-6077c767e9d5">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6Njg5NTM2ZDcxOTVjNDJmOWI5OTNkZDNkOWIxNDBiMDUvdGFibGVyYW5nZTo2ODk1MzZkNzE5NWM0MmY5Yjk5M2RkM2Q5YjE0MGIwNV8xLTAtMS0xLTc1L3RleHRyZWdpb246ODMzYTE3MTQ4YjE5NDcxMmFkZGZlMmZkMzk3ZTk3Y2RfNjA0NzMxMzk1MjgxOQ_b5dd198b-5528-4078-892b-661d39c37865">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6Njg5NTM2ZDcxOTVjNDJmOWI5OTNkZDNkOWIxNDBiMDUvdGFibGVyYW5nZTo2ODk1MzZkNzE5NWM0MmY5Yjk5M2RkM2Q5YjE0MGIwNV8xLTEtMS0xLTAvdGV4dHJlZ2lvbjo1ZTMwZGVmNmU4MjQ0ZWVjOGJhMWI3ZjA5MmRjMDExZF8zMA_538d0c5f-c2bd-4a7b-a189-fc26de176a79">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6Njg5NTM2ZDcxOTVjNDJmOWI5OTNkZDNkOWIxNDBiMDUvdGFibGVyYW5nZTo2ODk1MzZkNzE5NWM0MmY5Yjk5M2RkM2Q5YjE0MGIwNV8yLTEtMS0xLTAvdGV4dHJlZ2lvbjphYzYyNDM5M2MzYmU0Y2Y3OWRkOWJlZGZjYzYxZjVmYl8yOA_44da9c86-0f54-4dbf-a412-abdea71ab2bd">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xNjQ2_6590fbbb-a755-4a3a-bd28-85b1d0296211">false</dei:EntityShellCompany>
    <dei:Security12bTitle
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6M2NkOTQ5NzAzYmM0NDBkOGE0YWJjNmNhMDYwNWY2ZTgvdGFibGVyYW5nZTozY2Q5NDk3MDNiYzQ0MGQ4YTRhYmM2Y2EwNjA1ZjZlOF8xLTAtMS0xLTA_73313f4a-7e34-4c65-87be-90cd58325282">Common, $0.001 Par Value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6M2NkOTQ5NzAzYmM0NDBkOGE0YWJjNmNhMDYwNWY2ZTgvdGFibGVyYW5nZTozY2Q5NDk3MDNiYzQ0MGQ4YTRhYmM2Y2EwNjA1ZjZlOF8xLTItMS0xLTA_49b157fe-f3e2-45df-8012-66b0514605d8">PFIE</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGFibGU6M2NkOTQ5NzAzYmM0NDBkOGE0YWJjNmNhMDYwNWY2ZTgvdGFibGVyYW5nZTozY2Q5NDk3MDNiYzQ0MGQ4YTRhYmM2Y2EwNjA1ZjZlOF8xLTQtMS0xLTA_86aec78a-47c3-43ac-a558-8e631221a1ed">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="ibc61be0a74a34e81b0986b926637acbb_I20200504"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xL2ZyYWc6YTg1NTdlYTUxYWEzNGFiZjlhY2Y4YTA5MWNlNjNmNDUvdGV4dHJlZ2lvbjphODU1N2VhNTFhYTM0YWJmOWFjZjhhMDkxY2U2M2Y0NV8xNzg5_aaa5e0ef-1866-4d04-b9b0-f38c6f4479e8"
      unitRef="shares">47685661</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNi0yLTEtMS0w_5ea31070-f3d4-4a15-8fe0-27e47a9a67c2"
      unitRef="usd">7230330</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNi00LTEtMS0w_1662c7cf-19cc-42f6-849b-b09bd0ce1766"
      unitRef="usd">7358856</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:MarketableSecuritiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNy0yLTEtMS0w_0805b39f-7b40-4199-ab6d-4ecfbf810e8b"
      unitRef="usd">1727483</us-gaap:MarketableSecuritiesCurrent>
    <us-gaap:MarketableSecuritiesCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNy00LTEtMS0w_a3ea052b-4892-448e-9af0-dba9015f8bcb"
      unitRef="usd">1222053</us-gaap:MarketableSecuritiesCurrent>
    <us-gaap:OtherShortTermInvestments
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfOC0yLTEtMS0w_ed18d58a-8c6c-4b8b-9666-5a9138d42dfd"
      unitRef="usd">2400000</us-gaap:OtherShortTermInvestments>
    <us-gaap:OtherShortTermInvestments
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfOC00LTEtMS0w_4eeb5516-8ca0-4b4f-ad5d-7c6021e22d6a"
      unitRef="usd">2600000</us-gaap:OtherShortTermInvestments>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfOS0yLTEtMS0w_9e6a7c69-fc4a-4abf-90a4-572a2f1f08cb"
      unitRef="usd">4410935</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfOS00LTEtMS0w_9e7ca604-ec70-4526-9116-30d85d0e5904"
      unitRef="usd">5597701</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTAtMi0xLTEtMA_85002076-59bd-4378-bd5d-81475aaa3428"
      unitRef="usd">8815111</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTAtNC0xLTEtMA_e89310c8-95e5-424e-94b4-80c3d2db681e"
      unitRef="usd">9571807</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTEtMi0xLTEtMA_6a0f4db4-4c2c-48f1-8285-f05cbaba814e"
      unitRef="usd">1398596</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTEtNC0xLTEtMA_58be0c00-bc47-4452-980f-3414c2528fb6"
      unitRef="usd">1672422</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:IncomeTaxReceivable
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTItMi0xLTEtMA_43a90a71-a828-4326-8856-65de851d79d0"
      unitRef="usd">0</us-gaap:IncomeTaxReceivable>
    <us-gaap:IncomeTaxReceivable
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTItNC0xLTEtMA_0da6b606-4ae8-43fb-9ac6-2e6cec97b98a"
      unitRef="usd">77385</us-gaap:IncomeTaxReceivable>
    <us-gaap:AssetsCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTMtMi0xLTEtMA_f24d5020-0b55-467b-90a2-cabb448a0bd5"
      unitRef="usd">25982455</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTMtNC0xLTEtMA_02b54c67-1900-4d66-9618-a4b33d8cdc8a"
      unitRef="usd">28100224</us-gaap:AssetsCurrent>
    <us-gaap:MarketableSecuritiesNoncurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTYtMi0xLTEtMA_1cf02068-cc97-450d-923a-b19638751181"
      unitRef="usd">6552150</us-gaap:MarketableSecuritiesNoncurrent>
    <us-gaap:MarketableSecuritiesNoncurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTYtNC0xLTEtMA_5715b909-4507-43e4-8e7c-ba44cd373c36"
      unitRef="usd">7399963</us-gaap:MarketableSecuritiesNoncurrent>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTgtMi0xLTEtMA_a5285f94-1a82-4a08-ae9a-b7ef412f4779"
      unitRef="usd">88035</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTgtNC0xLTEtMA_3d8ea026-cb00-4086-89a7-a06df462eaa5"
      unitRef="usd">107991</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTktMi0xLTEtMA_64629d88-8537-4d7f-9195-1a7ada4fc891"
      unitRef="usd">11913754</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMTktNC0xLTEtMA_14ee19f2-504c-40d4-b7b0-608c484cd2a2"
      unitRef="usd">12071019</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjAtMi0xLTEtMA_1f97667a-ce01-4b6f-8910-dfecf9caa7f8"
      unitRef="usd">1938919</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjAtNC0xLTEtMA_f428193f-9ed4-4c64-94e4-23ef75b81ddc"
      unitRef="usd">1989782</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:Goodwill
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjEtMi0xLTEtMA_2450363a-48e3-43e9-8bfd-a1860be74851"
      unitRef="usd">2579381</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjEtNC0xLTEtMA_0e944a60-0d10-47fb-8d58-b1587cbbddfd"
      unitRef="usd">2579381</us-gaap:Goodwill>
    <us-gaap:AssetsNoncurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjItMi0xLTEtMA_ee3d4472-9e96-4f9b-a9fd-17bf5d3847ae"
      unitRef="usd">23072239</us-gaap:AssetsNoncurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjItNC0xLTEtMA_47ca3a2e-f16a-40d0-b993-b23af5a0fb91"
      unitRef="usd">24148136</us-gaap:AssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjMtMi0xLTEtMA_960f217c-9580-44ff-9f03-deef6880cd4f"
      unitRef="usd">49054694</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjMtNC0xLTEtMA_17c1e471-1e63-4d7f-a0eb-3f957ddfa26e"
      unitRef="usd">52248360</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjYtMi0xLTEtMA_391c34e6-ee1d-4298-9ada-0d3b51b3259c"
      unitRef="usd">1460159</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjYtNC0xLTEtMA_2a28311c-c6e1-4164-8f0e-62bbdb99133e"
      unitRef="usd">2633520</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjgtMi0xLTEtMA_aa7fd444-0226-4962-9641-9d844b0a9499"
      unitRef="usd">1296997</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjgtNC0xLTEtMA_e6d03e74-67e8-41f3-b036-c94d1ed96841"
      unitRef="usd">2089391</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjktMi0xLTEtMA_2a66dd93-d214-45fd-a3d9-84bf1c406408"
      unitRef="usd">50067</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMjktNC0xLTEtMA_725e3ad9-1c67-47e1-bc35-7ccd832e70c4"
      unitRef="usd">59376</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzAtMi0xLTEtMA_e6715eca-5282-4602-9629-8d7d85d37640"
      unitRef="usd">439592</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzAtNC0xLTEtMA_a4b1ec0a-143c-4395-8c5a-44f3cacee2be"
      unitRef="usd">403092</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzEtMi0xLTEtMA_45110eda-5dc1-41ac-bbe8-b845b05322b8"
      unitRef="usd">3246815</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzEtNC0xLTEtMA_edbcf619-7b58-4730-8380-67f3c33dddcb"
      unitRef="usd">5185379</us-gaap:LiabilitiesCurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzMtMi0xLTEtMA_8f09920a-f29c-4026-b099-4b46096bc36b"
      unitRef="usd">324711</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzMtNC0xLTEtMA_56004f74-1488-4e1b-843d-2c34d4181c34"
      unitRef="usd">439275</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzQtMi0xLTEtMA_35fa01e1-b7e2-4ce8-ac3e-99be802b9e39"
      unitRef="usd">40761</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzQtNC0xLTEtMA_967e851c-f83e-4f7f-b75a-41a265a64ff9"
      unitRef="usd">52120</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzUtMi0xLTEtMA_85eed020-d18b-4e9a-98de-9af2e29ddd2f"
      unitRef="usd">3612287</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzUtNC0xLTEtMA_fcc7e507-4c71-4bcd-979f-5f5e68ee82a7"
      unitRef="usd">5676774</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMjM_7b767f4e-db3d-4b7f-9a3b-04831ca8ed97"
      unitRef="usdPerShare">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMjM_bfb44ce6-7a89-49c6-95e9-2c8706d19785"
      unitRef="usdPerShare">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzU_13aaaa20-6bca-47ab-a8c6-81c82c21a1cd"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzU_5d8f021c-8c82-44e8-80b3-14977576add4"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzk_04841b28-2855-4f07-8f16-0798d83b896d"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzk_27ec8049-96a7-433a-b5ac-d10cd488cd4b"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzk_467ff568-d0e3-44ae-9cb3-d697d4b95bbb"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMC0xLTEtMC90ZXh0cmVnaW9uOjU1MTdmYzA3ZDhkNzQ5ZjA4ZjRiMDMyYWZhMWZhYTA3XzM4NDgyOTA2OTczMzk_8e80d91b-11db-47bc-9ff8-4fa9c0d66efe"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtMi0xLTEtMA_d86090a8-7c8e-48cc-911b-5618538f2d6c"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzgtNC0xLTEtMA_64631454-2d8b-4efd-9add-472d91598626"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0MjI_3cac1887-37d4-45dd-b868-f3b3c44cefd0"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0MjI_4048257d-e928-448c-9cea-68e83355f2cb"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0MzU_63976103-bdd6-4b7e-b991-9192ae5d7e78"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0MzU_c7413225-b363-41d4-b01c-c6a16c1c598a"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0NDc_4fbaa1f4-95c5-4b91-9d3c-714a43602bcc"
      unitRef="shares">51098039</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0NTk_74c7dc01-c1d0-4b9e-b719-b59a005e1a3c"
      unitRef="shares">47685661</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0NzE_d6134f5d-f11f-4376-8713-9226743f1327"
      unitRef="shares">50824355</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMC0xLTEtMC90ZXh0cmVnaW9uOjU0NGY2ZGU5YThhYTQ4YmQ4MjJjOTU4MjIxZjU3NzhjXzM4NDgyOTA2OTc0ODM_9fc70316-93b3-4ff6-9f65-4f63143bcb1e"
      unitRef="shares">47411977</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktMi0xLTEtMA_1821fc6f-7826-44f3-aec4-cad79fd07fe4"
      unitRef="usd">51098</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfMzktNC0xLTEtMA_91ae9839-2a7f-4d04-b74c-91c588367952"
      unitRef="usd">50824</us-gaap:CommonStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDAtMi0xLTEtMA_b6359ab9-1dba-42f2-909e-05f54d8b1594"
      unitRef="usd">5353019</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDAtNC0xLTEtMA_a059a1c6-56df-4dcb-b62a-e3ef2e38e9ee"
      unitRef="usd">5353019</us-gaap:TreasuryStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDEtMi0xLTEtMA_9cd90c16-d204-4ece-8f41-050ac171c3c6"
      unitRef="usd">29922760</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDEtNC0xLTEtMA_c6c0c910-2f09-425d-9bc7-729feed869b4"
      unitRef="usd">29584172</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDItMi0xLTEtMA_56ffc7e4-cbba-4d84-a947-4ec394a65705"
      unitRef="usd">-3518237</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDItNC0xLTEtMA_a1add013-f3d6-49f9-a3f5-fda50ca62c35"
      unitRef="usd">-2415460</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDMtMi0xLTEtMA_2a14a78a-9bca-4a53-a162-fa617af77c1f"
      unitRef="usd">24339805</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDMtNC0xLTEtMA_68bae02e-825e-4d67-a439-17e490b6062d"
      unitRef="usd">24705069</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDQtMi0xLTEtMA_2e76d639-12ab-46a1-8227-a2322b89d9ed"
      unitRef="usd">45442407</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDQtNC0xLTEtMA_8e52d768-4a6d-4a84-87bd-79d6b836bd99"
      unitRef="usd">46571586</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDUtMi0xLTEtMA_11a3004c-a517-49d2-9bf3-7db50c6c3598"
      unitRef="usd">49054694</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8xNi9mcmFnOjZkZTNiNDBlODk4NTQ0ZDVhYTkxNWFhMzFjMmIwMWZmL3RhYmxlOjEzY2VkNzdiZmMzODQyMmQ5MTg5MzZjMGM1NzNlNmQwL3RhYmxlcmFuZ2U6MTNjZWQ3N2JmYzM4NDIyZDkxODkzNmMwYzU3M2U2ZDBfNDUtNC0xLTEtMA_be325094-e6e8-4b28-adae-0c7753281774"
      unitRef="usd">52248360</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i006d4b794f744412aaf29a7158fc3d84_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNi01LTEtMS0w_d7ed7566-4ca4-4d70-9e86-038d61c2ed20"
      unitRef="usd">6860958</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i96f4e9eb620b40ec832ab0217eba2783_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNi03LTEtMS0w_21a3e3c5-034d-4098-9975-699b16c4a96f"
      unitRef="usd">10198635</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6fcbf5d800524e619b2a41375e10989d_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNy01LTEtMS0w_96fd34b8-3cab-4b10-b298-ed00498a1cb6"
      unitRef="usd">586184</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i373dd8d067e448bc98024bff53099c6b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNy03LTEtMS0w_216b81f8-6b45-464e-b322-3772ed19b903"
      unitRef="usd">634423</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfOC01LTEtMS0w_9e24f4de-4fd3-4eec-b523-717612e368cf"
      unitRef="usd">7447142</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfOC03LTEtMS0w_9813a25f-71c4-4e57-8c10-e5676abacd41"
      unitRef="usd">10833058</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i006d4b794f744412aaf29a7158fc3d84_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTEtNS0xLTEtMA_785092c9-9794-4c9a-90af-ef0b74de6444"
      unitRef="usd">3833682</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i96f4e9eb620b40ec832ab0217eba2783_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTEtNy0xLTEtMA_ee5a7ba8-f08d-40c7-81e0-ca2b4e18283c"
      unitRef="usd">4570988</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i6fcbf5d800524e619b2a41375e10989d_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTItNS0xLTEtMA_f0b5c525-4c31-4daf-b444-15074d440ae0"
      unitRef="usd">448784</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i373dd8d067e448bc98024bff53099c6b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTItNy0xLTEtMA_267f2f6b-af3b-4819-811b-9f4430b18c9a"
      unitRef="usd">497198</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTMtNS0xLTEtMA_8b8e2eee-5366-4cce-b2c6-cc74a6b46ee0"
      unitRef="usd">4282466</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTMtNy0xLTEtMA_eabc7fba-0c86-4f32-96de-27482caefcb4"
      unitRef="usd">5068186</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTUtNS0xLTEtMA_10ef5b5c-3eb5-432d-80b8-c8abd9a513cd"
      unitRef="usd">3164676</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTUtNy0xLTEtMA_cfcdda53-44cf-4522-b071-48f83d5a1765"
      unitRef="usd">5764872</us-gaap:GrossProfit>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTgtNS0xLTEtMA_f549e7d3-5990-4d51-8a02-592f321d0003"
      unitRef="usd">3272538</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTgtNy0xLTEtMA_1171b1f0-446f-487d-9b22-09ee6f886a5c"
      unitRef="usd">3161530</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTktNS0xLTEtMA_a9cf0b54-1ef9-4299-b429-0489680304f6"
      unitRef="usd">409726</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMTktNy0xLTEtMA_cd5b1313-7d2c-492f-9150-5dc5a9005921"
      unitRef="usd">349058</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:DepreciationNonproduction
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjAtNS0xLTEtMA_2e1e5259-4a03-4d4a-8ae6-14fa782abab7"
      unitRef="usd">147472</us-gaap:DepreciationNonproduction>
    <us-gaap:DepreciationNonproduction
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjAtNy0xLTEtMA_01a7e00c-d6d8-4e13-84b6-70abbc921c6e"
      unitRef="usd">116223</us-gaap:DepreciationNonproduction>
    <us-gaap:OperatingExpenses
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjEtNS0xLTEtMA_625ddd41-5b3f-4245-9785-481180e163e3"
      unitRef="usd">3829736</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjEtNy0xLTEtMA_423aa7e2-d430-40c5-bfa2-fb29e060afb3"
      unitRef="usd">3626811</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjMtNS0xLTEtMA_5d55600b-0d3f-4b3a-b5a2-41fff37d0e3d"
      unitRef="usd">-665060</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjMtNy0xLTEtMA_3a1917be-b8d5-453d-b8ce-c4c8af2675df"
      unitRef="usd">2138061</us-gaap:OperatingIncomeLoss>
    <pfie:DisposalGroupNotDiscontinuedOperationGainLossonDisposalAfterForeignCurrencyTranslation
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjYtNS0xLTEtMA_5a8629ed-724e-4a47-b45b-ac86dba93bc5"
      unitRef="usd">0</pfie:DisposalGroupNotDiscontinuedOperationGainLossonDisposalAfterForeignCurrencyTranslation>
    <pfie:DisposalGroupNotDiscontinuedOperationGainLossonDisposalAfterForeignCurrencyTranslation
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjYtNy0xLTEtMA_8a8d133d-94be-408c-9d9f-a8d210107864"
      unitRef="usd">16930</pfie:DisposalGroupNotDiscontinuedOperationGainLossonDisposalAfterForeignCurrencyTranslation>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjctNS0xLTEtMA_b089a1b7-26bc-43ca-b32a-cb6cc873036e"
      unitRef="usd">347</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjctNy0xLTEtMA_2d7401f1-52be-4855-bff5-acee131c01f6"
      unitRef="usd">-551</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InvestmentIncomeInterest
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjgtNS0xLTEtMA_cc46c42e-1509-4f63-a96b-8a87fc70c53c"
      unitRef="usd">74393</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjgtNy0xLTEtMA_144731ab-917a-4553-aeb4-64a639d27752"
      unitRef="usd">91703</us-gaap:InvestmentIncomeInterest>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjktNS0xLTEtMA_ca0c9eac-4c3f-4673-b387-603b0d1f562b"
      unitRef="usd">74740</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMjktNy0xLTEtMA_82ba016b-314a-48bd-a01b-f3257df59b33"
      unitRef="usd">108082</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzEtNS0xLTEtMA_e12ce6ea-fc92-4da6-ba7a-69a1c76db910"
      unitRef="usd">-590320</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzEtNy0xLTEtMA_68bb318e-f265-47a9-b555-ddd68bdb6eb5"
      unitRef="usd">2246143</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzMtNS0xLTEtMA_f1d8263e-252b-4b86-91d2-2e71b35d56ea"
      unitRef="usd">225056</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzMtNy0xLTEtMA_2b3681f9-9028-4817-8d4e-95e4e0981a93"
      unitRef="usd">-577525</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzUtNS0xLTEtMA_65fa639b-2979-456a-9bab-7b97984fc728"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzUtNy0xLTEtMA_2f8c8130-98b3-4c2b-a027-15f87789a99e"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzgtNS0xLTEtMA_26cea0ec-11fa-4007-97cf-24c38cfb80f2"
      unitRef="usd">-945423</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzgtNy0xLTEtMA_7ea8b7fc-f4a2-42fd-b012-4cd6d583bd86"
      unitRef="usd">149415</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:UnrealizedGainLossOnInvestments
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzktNS0xLTEtMA_f331159b-c843-4ad8-bb82-d6b9e9341cdc"
      unitRef="usd">-157354</us-gaap:UnrealizedGainLossOnInvestments>
    <us-gaap:UnrealizedGainLossOnInvestments
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfMzktNy0xLTEtMA_ee4e086d-8fa1-4bed-b117-9fb6ea3c56ea"
      unitRef="usd">68752</us-gaap:UnrealizedGainLossOnInvestments>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDAtNS0xLTEtMA_b3398058-a257-4a38-82dc-21ca158e3bb1"
      unitRef="usd">-1102777</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDAtNy0xLTEtMA_23f9a0ff-bbf4-430f-b7ff-2559de7cd72d"
      unitRef="usd">218167</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDItNS0xLTEtMA_2a431573-55c4-4493-9ee7-76ce70a4a8c0"
      unitRef="usd">-1468041</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDItNy0xLTEtMA_ce967864-d1bd-461a-86e9-d607a5ecf7cc"
      unitRef="usd">1886785</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:EarningsPerShareBasic
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDQtNS0xLTEtMA_7cf6f634-d592-4f75-a903-d963d08f3a2d"
      unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDQtNy0xLTEtMA_31f39855-9e82-42a5-b1ff-52dca0922c29"
      unitRef="usdPerShare">0.04</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDUtNS0xLTEtMA_3a9b47cb-5c3c-462f-8d84-9c62129328df"
      unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDUtNy0xLTEtMA_2b2ac3c0-7547-4b39-8188-8ed50a1b9f5c"
      unitRef="usdPerShare">0.03</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDctNS0xLTEtMA_ff418913-42a5-409b-b52e-ecd0ace2a64b"
      unitRef="shares">47492441</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDctNy0xLTEtMA_af08f5d1-c476-43e6-a272-a9d255f1701f"
      unitRef="shares">47437424</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDgtNS0xLTEtMA_2257bfd6-5247-42db-8729-2fd836d7891b"
      unitRef="shares">47492441</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yMi9mcmFnOmM4YWVhNTVjMTQ3NTQzYWU5MjI0NTU3YWEwMzU5NDE2L3RhYmxlOjdkZjkxNzQxNGQ4YTQyMWE5NDAxY2E0YjE3MDA5MTBkL3RhYmxlcmFuZ2U6N2RmOTE3NDE0ZDhhNDIxYTk0MDFjYTRiMTcwMDkxMGRfNDgtNy0xLTEtMA_c6b4b42b-5fce-459f-a4fd-a2b8900af90f"
      unitRef="shares">48084390</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesIssued
      contextRef="id349bb99f6c34096b6f8fe8aa8944472_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS0yLTEtMS0w_df1d079b-fc7a-4929-90ed-850ae5aa65ca"
      unitRef="shares">47411977</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="id349bb99f6c34096b6f8fe8aa8944472_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS00LTEtMS0w_0644fc67-a0ff-4e43-a490-657fce46b55b"
      unitRef="usd">50824</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id4cf6cdbad5f4afb80f7eb1831e195df_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS02LTEtMS0w_b40dd608-c82e-4863-a9ab-e87d9d70b3aa"
      unitRef="usd">29584172</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2c8998ae98144f5f9b66d6048c7f2556_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS04LTEtMS0w_17089792-407d-4660-9801-a9239d2f1162"
      unitRef="usd">-2415460</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6415c1b1ad204d3681fd63a259d3162d_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS0xMC0xLTEtMA_c19c1dc1-90f5-43af-b32e-b523a16d7aee"
      unitRef="usd">-5353019</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i81141fab34294c4091cf5514614ac29b_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS0xMi0xLTEtMA_7db7d5fd-2200-449c-b0a5-4175d1d56d8a"
      unitRef="usd">24705069</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNS0xNC0xLTEtMA_a936e384-b35c-4412-b1c8-08c39131ef40"
      unitRef="usd">46571586</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ia4bd74fcdf53430d963b6dfbb7c711a5_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNi02LTEtMS0w_82c2e711-d67f-4bad-9899-ab6059f9ee28"
      unitRef="usd">66348</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNi0xNC0xLTEtMA_59e6b6b5-e8e0-451e-8f6f-e6c2a702126e"
      unitRef="usd">66348</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i93d54813f8ed471fb7ea3324988053b0_D20200101-20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNy0yLTEtMS0w_c3d4b8a1-4fe0-4cd4-b878-bb2a64ca650e"
      unitRef="shares">2000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i93d54813f8ed471fb7ea3324988053b0_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNy00LTEtMS0w_3f32fab8-0974-4707-8b6c-567b128434b6"
      unitRef="usd">2</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ia4bd74fcdf53430d963b6dfbb7c711a5_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNy02LTEtMS0w_03687b07-800b-4923-8128-d144fbf9ae47"
      unitRef="usd">2018</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfNy0xNC0xLTEtMA_fd5222af-64f8-4349-bccb-7b56347b3d56"
      unitRef="usd">2020</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="i93d54813f8ed471fb7ea3324988053b0_D20200101-20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOC0yLTEtMS0w_1a273037-bbf9-4259-9586-9898cb313088"
      unitRef="shares">271684</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i93d54813f8ed471fb7ea3324988053b0_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOC00LTEtMS0w_19d337f6-c74b-46eb-8e17-984bda4cb198"
      unitRef="usd">272</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="ia4bd74fcdf53430d963b6dfbb7c711a5_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOC02LTEtMS0w_62c498c5-eaad-4a5c-86b4-fe3ab6b2eec7"
      unitRef="usd">419101</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOC0xNC0xLTEtMA_6c8175fc-2f09-4eef-b27e-66e094697619"
      unitRef="usd">419373</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="ia4bd74fcdf53430d963b6dfbb7c711a5_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOS02LTEtMS0w_cfbb3f16-aa25-4a8d-8eea-07c779eb7b6f"
      unitRef="usd">148879</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfOS0xNC0xLTEtMA_bcc94833-10ad-458b-a951-b2d5176511e8"
      unitRef="usd">148879</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i0c725b7a4ca94f65b673d2ebc8a03ae6_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTEtOC0xLTEtMA_c5131bb4-4467-4850-8492-eb90aec11b03"
      unitRef="usd">-945423</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTEtMTQtMS0xLTA_271dd6d8-07cc-4104-8b7d-865672b3b09a"
      unitRef="usd">-945423</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i0c725b7a4ca94f65b673d2ebc8a03ae6_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTItOC0xLTEtMA_2f1957ff-97a4-4067-8915-a45b8ff590f0"
      unitRef="usd">-157354</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTItMTQtMS0xLTA_c2214a08-4138-4821-8693-dd82ed499e06"
      unitRef="usd">-157354</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i7cc4b31cd9e54a63bf4610b656cd143f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTMtMTItMS0xLTA_b06aee10-6636-4032-92f7-7d0e170130c8"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTMtMTQtMS0xLTA_4b9cb782-af0d-4024-b62e-fb09c5315743"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="i01e9aac4e28240c191fb8800c089cf90_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtMi0xLTEtMA_b63804a7-0262-46e6-be2f-5f4d12f63a00"
      unitRef="shares">47685661</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i01e9aac4e28240c191fb8800c089cf90_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtNC0xLTEtMA_778dadbf-4cdd-49a7-90f3-8d968c3d3cbc"
      unitRef="usd">51098</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i05a5ea7d54b845bd9aa7e22702d351d5_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtNi0xLTEtMA_ed2bb844-90e8-440b-b7be-e16f0080fc54"
      unitRef="usd">29922760</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5541e2e9a81943cab48e9682a89c5582_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtOC0xLTEtMA_add60624-3359-4866-89ec-4bef93fce60b"
      unitRef="usd">-3518237</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if760855962394925be6fc8be9b2d13c2_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtMTAtMS0xLTA_21bbe1c8-cbf2-439f-99aa-f3de3a3815e0"
      unitRef="usd">-5353019</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i34526aa0b61540a2a630f15ba8c844ab_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtMTItMS0xLTA_24cc48f8-0bd3-43b2-abbb-77f5e3860434"
      unitRef="usd">24339805</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNmODQ5YTQ5NjAyMTQzMThhOWQ1Y2Y1NDg5YTFlMjI1L3RhYmxlcmFuZ2U6M2Y4NDlhNDk2MDIxNDMxOGE5ZDVjZjU0ODlhMWUyMjVfMTQtMTQtMS0xLTA_cee5f763-1126-4913-891d-b6866d4c2aae"
      unitRef="usd">45442407</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="i25a96fdd886f4af2bb54726ecf8f78db_I20181231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS0yLTEtMS0w_607d819f-b6fd-4a9b-86da-aa33f810cda8"
      unitRef="shares">47932305</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i25a96fdd886f4af2bb54726ecf8f78db_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS00LTEtMS0w_f5d41cdb-8a8d-4287-9541-5bedad35c42d"
      unitRef="usd">49708</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6333afb6db2b4d0fb672b737ce2ee341_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS02LTEtMS0w_4d396d45-1d8f-43b8-8273-05b03558ae7b"
      unitRef="usd">28027742</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id05a2c96628749a5a004e9c221928b85_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS04LTEtMS0w_ac2c3412-f904-4f7d-8daa-71377f3f51b2"
      unitRef="usd">-2895683</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iacc32b0469d248efa1f4eaeaac7dfe22_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS0xMC0xLTEtMA_b7de822d-65b7-41c3-b9a8-d544dbed03a1"
      unitRef="usd">-2609485</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6b18274e73cd4c56a6a9f7f9ac073afd_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS0xMi0xLTEtMA_ddb3db75-86c8-446d-b47b-715d8df088d8"
      unitRef="usd">22683577</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i27fb5c1a47cf468f85c86b5c49cb523c_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNS0xNC0xLTEtMA_44b5bad4-fe1e-4552-87df-088b4962323d"
      unitRef="usd">45255859</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i04b47f70ade44c0c80275e0c5ae1b74f_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNi02LTEtMS0w_81e91fb8-6a3b-45f9-bed8-8b793ea23a2b"
      unitRef="usd">66714</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNi0xNC0xLTEtMA_b0dd1da5-f682-4715-afef-7bbfa3f8fa8e"
      unitRef="usd">66714</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i89e49caa002e436ebeaad370511cd429_D20190101-20190331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNy0yLTEtMS0w_3c6352b4-5ff1-4f2c-bb1f-95566b06a8f0"
      unitRef="shares">2483</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i89e49caa002e436ebeaad370511cd429_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNy00LTEtMS0w_c8ec06df-7b34-4f3a-b4c5-ab254b0cc02d"
      unitRef="usd">2</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i04b47f70ade44c0c80275e0c5ae1b74f_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNy02LTEtMS0w_e47771d9-be02-456d-b45f-1b88bce26d10"
      unitRef="usd">-2</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfNy0xNC0xLTEtMA_9c647fee-b7b5-481d-b9ca-abe6bc3e2fd1"
      unitRef="usd">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="i89e49caa002e436ebeaad370511cd429_D20190101-20190331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOC0yLTEtMS0w_2e663f8a-fbc3-4d79-984e-400c23488b37"
      unitRef="shares">148723</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i89e49caa002e436ebeaad370511cd429_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOC00LTEtMS0w_55a96515-07bc-48d0-90a2-6b05f3714ff5"
      unitRef="usd">149</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i04b47f70ade44c0c80275e0c5ae1b74f_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOC02LTEtMS0w_e35a7ddc-d6de-475a-8b29-c1230928503f"
      unitRef="usd">379712</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOC0xNC0xLTEtMA_7b8454c1-0d8e-43ae-b8e6-7b93a6364f2d"
      unitRef="usd">379861</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i04b47f70ade44c0c80275e0c5ae1b74f_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOS02LTEtMS0w_42bcb6b8-ceb3-41df-ad14-83acaf3b3026"
      unitRef="usd">143022</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfOS0xNC0xLTEtMA_74a1bf55-a56e-4f8e-97b1-9aca06d0456a"
      unitRef="usd">143022</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="i89e49caa002e436ebeaad370511cd429_D20190101-20190331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTAtMi0xLTEtNDU_f2875be8-7fce-4db1-9b90-e81616463a8c"
      unitRef="shares">775287</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i51174fe6c6dc4101a78f199f06658edd_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTAtMTAtMS0xLTQ1_2c556482-a3de-45a5-bc52-79208e50eebd"
      unitRef="usd">1333578</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTAtMTQtMS0xLTQ1_f43dad2d-01d8-4181-a7ac-870db4c0dfce"
      unitRef="usd">1333578</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ia1d459b0a2604521a1adab679128fe1e_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTAtOC0xLTEtMA_ca85feef-50a9-4d06-aba5-35e940320893"
      unitRef="usd">149415</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTAtMTQtMS0xLTA_1da32f8e-2e1b-469b-96a7-2e1d2dbb0cee"
      unitRef="usd">149415</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="ia1d459b0a2604521a1adab679128fe1e_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTEtOC0xLTEtMA_a19d04fb-7542-4511-bd70-0326b7acbdbf"
      unitRef="usd">68752</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTEtMTQtMS0xLTA_2ec95de4-22c8-4a96-9174-4fe9bfbd0b0c"
      unitRef="usd">68752</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i2b9ef5e7bfac4438b18e1032c9360e12_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTItMTItMS0xLTA_910b364f-388b-4a18-9296-bb94f919403f"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTItMTQtMS0xLTA_3630e66b-ab6d-459d-98dd-d0bd2b72e043"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="i5cb481d8ae5e406dbea332b46438569c_I20190331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtMi0xLTEtMA_635c424b-7b70-4894-86e7-539039faa63c"
      unitRef="shares">47308224</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i5cb481d8ae5e406dbea332b46438569c_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtNC0xLTEtMA_f6449eb6-d539-4b85-bf82-4af30315e23f"
      unitRef="usd">49859</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id4a3fa162a774193a408351ca85bcca9_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtNi0xLTEtMA_3217cdcc-bc8f-4a4f-aaea-c80d0d898cac"
      unitRef="usd">28331144</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i7b153f1687384604893f7dd986571f90_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtOC0xLTEtMA_ac4de2c4-5db6-4262-b0cc-819675da7c01"
      unitRef="usd">-2677516</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ie2f41dad10bd4560a730ad9570b7c57a_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtMTAtMS0xLTA_f849602c-6a1b-4b90-8349-fa84c2b7b552"
      unitRef="usd">-3943063</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iaa07b54bdeba44799be8f6ea7315e666_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtMTItMS0xLTA_cbce5c5c-46cd-4e2e-bd6b-e7731d10f54b"
      unitRef="usd">24352195</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yOC9mcmFnOjhiYmM4YzM5NmQyMTQyYzU4ZjMyZTM3YTZjZDU3OGYyL3RhYmxlOjNlYTM2YjlmM2E3YjQyNDdiODIzYzE4MTJiOGZkNDQwL3RhYmxlcmFuZ2U6M2VhMzZiOWYzYTdiNDI0N2I4MjNjMTgxMmI4ZmQ0NDBfMTMtMTQtMS0xLTA_1f9bdcef-8d57-4686-ad31-e8ba1d04c622"
      unitRef="usd">46112619</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNi0xLTEtMS0w_8e9c5286-7a08-4d6f-8cb6-524680968c93"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNi0zLTEtMS0w_5c5afe85-a918-4b5d-9620-2868019a979c"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfOC0xLTEtMS0w_f6f70fbf-8dbd-4b63-9fdc-79538a7a18b2"
      unitRef="usd">259801</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfOC0zLTEtMS0w_42a081c9-e657-4a6b-88bb-2e4b8c1a4dcc"
      unitRef="usd">249889</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfOS0xLTEtMS0w_dc3ad798-24db-4c5f-8486-a61a6c6c0c72"
      unitRef="usd">0</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfOS0zLTEtMS0w_6ac0d800-0fae-4c97-a957-b9cabe84bcf1"
      unitRef="usd">16930</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTAtMS0xLTEtMA_c3c8cd04-7eb2-4cf1-9eff-ef29f6773102"
      unitRef="usd">133803</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTAtMy0xLTEtMA_3d8f1b0f-18c3-43a0-8eac-f040487d951b"
      unitRef="usd">177906</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTEtMS0xLTEtMA_5dd566b1-754b-421b-bdf5-b75bda869ecd"
      unitRef="usd">66348</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTEtMy0xLTEtMA_6ec361b6-2da0-4ddd-9a0a-84076e406650"
      unitRef="usd">66714</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTMtMS0xLTEtMA_198da5e8-2468-4b9e-9e69-3e86d3810b5c"
      unitRef="usd">-1314939</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTMtMy0xLTEtMA_1731a4c7-c458-49ce-96bd-c5bd004333a6"
      unitRef="usd">-654710</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTQtMS0xLTEtMA_a875e4cd-1a74-45f0-a54c-be1a2e10cabe"
      unitRef="usd">107561</us-gaap:IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable>
    <us-gaap:IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTQtMy0xLTEtMA_1dd4a2ff-714f-460d-a0a3-2e5fc6894bbf"
      unitRef="usd">-234042</us-gaap:IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTUtMS0xLTEtMA_9ef85da3-a5e4-4853-b293-d8f06ac22ce8"
      unitRef="usd">-537668</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTUtMy0xLTEtMA_c4f3fdd7-45e5-47ab-971f-ccde298efe7c"
      unitRef="usd">-656988</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTYtMS0xLTEtMA_93c21aad-3ba2-4abf-93e0-05c3452918e5"
      unitRef="usd">-168546</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTYtMy0xLTEtMA_e3112fea-80b8-4d61-8b17-be90897e8707"
      unitRef="usd">239395</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncomeTaxExpenseBenefitContinuingOperationsAdjustmentOfDeferredTaxAssetLiability
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTctMS0xLTEtMA_59ea9107-1ce7-4ed4-bc92-eadbc809977e"
      unitRef="usd">-114564</us-gaap:IncomeTaxExpenseBenefitContinuingOperationsAdjustmentOfDeferredTaxAssetLiability>
    <us-gaap:IncomeTaxExpenseBenefitContinuingOperationsAdjustmentOfDeferredTaxAssetLiability
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTctMy0xLTEtMA_3d193e54-3e82-461e-b756-d51b328b0208"
      unitRef="usd">123764</us-gaap:IncomeTaxExpenseBenefitContinuingOperationsAdjustmentOfDeferredTaxAssetLiability>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTgtMS0xLTEtMA_0a0c7bad-3cd4-477e-b4bd-f9838850bdb4"
      unitRef="usd">-1837760</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTgtMy0xLTEtMA_82dfc5ad-4e40-4765-9881-2a957bbc69f6"
      unitRef="usd">-499721</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTktMS0xLTEtMA_a0052c42-7704-4046-a576-629a489c178d"
      unitRef="usd">271078</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMTktMy0xLTEtMA_9129a6e1-f9b4-47eb-b45e-b7a86aaa787a"
      unitRef="usd">2608501</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:ProceedsFromSaleOfMachineryAndEquipment
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjItMS0xLTEtMA_04005053-3d7a-49da-9ef1-4919772cbd9d"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfMachineryAndEquipment>
    <us-gaap:ProceedsFromSaleOfMachineryAndEquipment
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjItMy0xLTEtMA_68f74512-bfa2-44ee-ada6-13e2b793516b"
      unitRef="usd">18400</us-gaap:ProceedsFromSaleOfMachineryAndEquipment>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjMtMS0xLTEtMA_5aa441b2-9345-4930-adb2-40e55098a9b2"
      unitRef="usd">-387326</us-gaap:PaymentsForProceedsFromInvestments>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjMtMy0xLTEtMA_b0f3f56c-7de4-4483-a8f0-0f021e23a92a"
      unitRef="usd">-647739</us-gaap:PaymentsForProceedsFromInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjQtMS0xLTEtMA_86c959f8-4509-4659-b779-216d3f527da6"
      unitRef="usd">525384</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjQtMy0xLTEtMA_d40d9083-e644-40fa-b459-4b5c5e3eac95"
      unitRef="usd">443883</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjYtMS0xLTEtMA_0788b667-1ad6-4fa3-9047-2e73da8f2e9d"
      unitRef="usd">-138058</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjYtMy0xLTEtMA_237c816c-af50-4cb4-bf25-f86ac4449d00"
      unitRef="usd">222256</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <pfie:ValueOfEquityAwardsSurrenderedByEmployeesForTaxLiability
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjktMS0xLTEtMA_765891a4-8eba-4950-9bd7-d2f70ef638ca"
      unitRef="usd">-148879</pfie:ValueOfEquityAwardsSurrenderedByEmployeesForTaxLiability>
    <pfie:ValueOfEquityAwardsSurrenderedByEmployeesForTaxLiability
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMjktMy0xLTEtMA_c5849c3e-af16-4200-acc1-dd89aa0906c1"
      unitRef="usd">-143022</pfie:ValueOfEquityAwardsSurrenderedByEmployeesForTaxLiability>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzAtMS0xLTEtMA_89e9b2ca-4bca-4c68-ac52-11b5f018fadb"
      unitRef="usd">2020</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzAtMy0xLTEtMA_c19cf7e8-6d39-48e8-bc35-69263d2fbd28"
      unitRef="usd">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzEtMS0xLTEtMA_faca713a-597f-4988-b2e5-771b84dd1de2"
      unitRef="usd">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzEtMy0xLTEtMA_69e0e09c-bf4d-4b09-a536-19ea4adbd0a4"
      unitRef="usd">1333578</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzItMS0xLTEtMA_b000f2f9-be19-48a9-9735-c3e7d17ec152"
      unitRef="usd">19089</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzItMy0xLTEtMA_7c58af35-8bbb-49e4-a9f9-d958fbb2e843"
      unitRef="usd">15718</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzMtMS0xLTEtMA_04fc07c2-899d-4cdf-aaae-c0f9128fe0c1"
      unitRef="usd">-165948</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzMtMy0xLTEtMA_3e1b5dbb-98e9-4140-bd25-5ed43617f942"
      unitRef="usd">-1492318</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzUtMS0xLTEtMA_62c3c13d-8087-48a4-895f-3df8654b122c"
      unitRef="usd">-95598</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzUtMy0xLTEtMA_e8e45607-6499-44ef-a904-3c8ad2f45dc9"
      unitRef="usd">16507</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzctMS0xLTEtMA_a665ad66-cce8-46b3-a605-4dc90018db1d"
      unitRef="usd">-128526</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzctMy0xLTEtMA_4845f5ed-efaf-480a-9244-dbf8d44f62b1"
      unitRef="usd">1354946</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzgtMS0xLTEtMA_31172245-2a88-44f8-922f-7987ea48f553"
      unitRef="usd">7358856</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i27fb5c1a47cf468f85c86b5c49cb523c_I20181231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzgtMy0xLTEtMA_e9cb872e-518b-4a70-84ed-60100e34d915"
      unitRef="usd">10101932</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzktMS0xLTEtMA_1f3d5c54-f7ee-4063-8510-46e0e100094d"
      unitRef="usd">7230330</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfMzktMy0xLTEtMA_4c7bd47e-8932-4aad-90ee-22488637512f"
      unitRef="usd">11456878</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDQtMS0xLTEtMA_11665869-fa82-4ad2-adf5-1c163ee162b0"
      unitRef="usd">872</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDQtMy0xLTEtMA_bb5f0867-6fc5-487c-85ab-f0d1b17fbbc9"
      unitRef="usd">1411</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaid
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDUtMS0xLTEtMA_a3c0f5b7-e355-43ea-93b2-c5155022c571"
      unitRef="usd">0</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDUtMy0xLTEtMA_4ffe757e-8a84-4df1-8c87-fc2eca4a3209"
      unitRef="usd">711524</us-gaap:IncomeTaxesPaid>
    <us-gaap:NoncashOrPartNoncashAcquisitionOtherAssetsAcquired1
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDctMS0xLTEtMA_64c05d5c-2a1a-4484-9fdb-bbc6e9861ab7"
      unitRef="usd">419373</us-gaap:NoncashOrPartNoncashAcquisitionOtherAssetsAcquired1>
    <us-gaap:NoncashOrPartNoncashAcquisitionOtherAssetsAcquired1
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8yNS9mcmFnOjVkNWY0YmUyMmVjNzRlOWRiMDBmZGUxNjg2NjcyYTA5L3RhYmxlOjU5M2Y3YTI2MmY0MzRkZTI5OWIzZTQyY2JjNzk5MTZmL3RhYmxlcmFuZ2U6NTkzZjdhMjYyZjQzNGRlMjk5YjNlNDJjYmM3OTkxNmZfNDctMy0xLTEtMA_f663da89-5396-49f5-abd7-9c9b2697f6e0"
      unitRef="usd">379861</us-gaap:NoncashOrPartNoncashAcquisitionOtherAssetsAcquired1>
    <srt:CondensedFinancialStatementsTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8zNC9mcmFnOmUwZDFkZjdjYWZiODQxZWQ5ODBiMGY1ZDRmNWQ1ZWZkL3RleHRyZWdpb246ZTBkMWRmN2NhZmI4NDFlZDk4MGIwZjVkNGY1ZDVlZmRfMTE4Ng_4bc2b8ef-b26c-4c43-9ed9-9001cada3aa5">CONDENSED FINANCIAL STATEMENTS&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Except where the context otherwise requires, all references herein to the "Company," "Profire," "we," "us," "our," or similar words and phrases are to Profire Energy, Inc. and its wholly owned subsidiary, taken together.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The accompanying financial statements have been prepared by the Company without audit. In the opinion of Management, all adjustments (which include only normal recurring adjustments) necessary to present fairly the financial position, results of operations, stockholders' equity, and cash flows at March 31, 2020 and for all periods presented herein have been made.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Certain information and footnote disclosures normally included in financial statements prepared in accordance with accounting principles generally accepted in the United States of America ("US GAAP") have been condensed or omitted. These condensed consolidated financial statements should be read in conjunction with the Company's audited financial statements contained in its annual report on Form 10-K for the year ended December 31, 2019 ("Form 10-K").&#160; The results of operations for the three month periods ended March 31, 2020 and 2019 are not necessarily indicative of the operating results for the full years.&lt;/span&gt;&lt;/div&gt;</srt:CondensedFinancialStatementsTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8zNy9mcmFnOmE0ZmY1ODFkNzkyZTQwYjZiMmVlYzkwMjk1ZjcwNjczL3RleHRyZWdpb246YTRmZjU4MWQ3OTJlNDBiNmIyZWVjOTAyOTVmNzA2NzNfMjM0NA_aab43008-a92a-455a-b740-19e29e82e9bd">ORGANIZATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Organization and Line of Business&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;This Organization and Summary of Significant Accounting Policies of the Company is presented to assist in understanding the Company's condensed consolidated financial statements. The Company's accounting policies conform to "US GAAP."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company provides burner-management products, solutions and services for the oil and gas industry primarily in the US and Canadian markets.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Significant Accounting Policies&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;There have been no changes to the significant accounting policies of the Company from the information provided in Note 1 of the Notes to the Consolidated Financial Statements in the Company's most recent Form 10-K.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company has evaluated all recent accounting pronouncements and determined that the adoption of pronouncements applicable to the Company has not had or is not expected to have a material impact on the Company's financial position, results of operations or cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Reclassification&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Certain balances in previously issued consolidated financial statements have been reclassified to be consistent with the current period presentation within the Condensed Consolidated Statements of Cash Flows. The reclassification had no impact on financial position, net income, or stockholders' equity.&lt;/span&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8zNy9mcmFnOmE0ZmY1ODFkNzkyZTQwYjZiMmVlYzkwMjk1ZjcwNjczL3RleHRyZWdpb246YTRmZjU4MWQ3OTJlNDBiNmIyZWVjOTAyOTVmNzA2NzNfMjM0MA_feb15f82-b855-4e00-adaa-18ccb02e65aa">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company has evaluated all recent accounting pronouncements and determined that the adoption of pronouncements applicable to the Company has not had or is not expected to have a material impact on the Company's financial position, results of operations or cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV8zNy9mcmFnOmE0ZmY1ODFkNzkyZTQwYjZiMmVlYzkwMjk1ZjcwNjczL3RleHRyZWdpb246YTRmZjU4MWQ3OTJlNDBiNmIyZWVjOTAyOTVmNzA2NzNfMjM0MQ_96058482-7c56-4afe-bd7c-047718f64e29">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Reclassification&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Certain balances in previously issued consolidated financial statements have been reclassified to be consistent with the current period presentation within the Condensed Consolidated Statements of Cash Flows. The reclassification had no impact on financial position, net income, or stockholders' equity.&lt;/span&gt;&lt;/div&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RleHRyZWdpb246MDk0NDE2NDNlNDc0NDZiOTkzZTMyZjI0NTg4NTgzMjNfOTU_3534f65f-1672-4cfd-b6dc-6b6c763b5eb4">INVENTORIES&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Inventories consisted of the following at each balance sheet date:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:67.298%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.204%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.768%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;191,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,592,002&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,517,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Subtotal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,783,736&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,517,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Reserve for obsolescence&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(968,625)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(946,051)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,815,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,571,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RleHRyZWdpb246MDk0NDE2NDNlNDc0NDZiOTkzZTMyZjI0NTg4NTgzMjNfOTk_5d74db9f-3a34-481c-b733-e8cc2c06dd09">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Inventories consisted of the following at each balance sheet date:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:67.298%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.204%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.768%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;191,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,592,002&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,517,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Subtotal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,783,736&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,517,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Reserve for obsolescence&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(968,625)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(946,051)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,815,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,571,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfMi0xLTEtMS0w_23463451-3f89-48d3-9262-d81aa7e62d91"
      unitRef="usd">191734</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfMi0zLTEtMS0w_60d8a79c-147e-4868-937d-d36ca41f6605"
      unitRef="usd">0</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryFinishedGoods
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfMy0xLTEtMS0w_a65b7990-8998-4674-96cd-752c9e6b68b1"
      unitRef="usd">9592002</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfMy0zLTEtMS0w_19b9d491-da75-4143-a88c-45de9082dce9"
      unitRef="usd">10517858</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryWorkInProcess
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNC0xLTEtMS0w_7fc19f00-d5a2-469e-b27c-fd2a255d49ef"
      unitRef="usd">0</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNC0zLTEtMS0w_184f99d9-7e62-4efb-82fc-b8a60433d86e"
      unitRef="usd">0</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryGross
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNS0xLTEtMS0w_256503d0-190b-4277-bb07-ef95ff95dcd0"
      unitRef="usd">9783736</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNS0zLTEtMS0w_bb7d8193-f53a-4185-8bf5-e413ee2db112"
      unitRef="usd">10517858</us-gaap:InventoryGross>
    <us-gaap:InventoryValuationReserves
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNi0xLTEtMS0w_c5c74b4e-cbb9-4c24-8a3c-ac8363b3ab82"
      unitRef="usd">968625</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNi0zLTEtMS0w_93486cbc-41a0-4ffb-b85e-6e16728b033f"
      unitRef="usd">946051</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNy0xLTEtMS0w_b7ff4ad5-f541-4ef7-91f8-54a75e1878bc"
      unitRef="usd">8815111</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80MC9mcmFnOjA5NDQxNjQzZTQ3NDQ2Yjk5M2UzMmYyNDU4ODU4MzIzL3RhYmxlOjIyZjM4MmM0NjdlYzRlNTRiZDZkNzIzNWJkOTYzZWI0L3RhYmxlcmFuZ2U6MjJmMzgyYzQ2N2VjNGU1NGJkNmQ3MjM1YmQ5NjNlYjRfNy0zLTEtMS0w_f3ef8fe8-4185-47de-9045-ca9673c1c7c4"
      unitRef="usd">9571807</us-gaap:InventoryNet>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90ZXh0cmVnaW9uOjE2NTE3ZjBmMjlkMDQ3NDY5MmQ5ZTBmZDQxMjkyZGEwXzY1OTcwNjk3NjY3NzA_a35bf72a-32b6-4f40-9c5e-e153c218359c">ACCRUED LIABILITIES&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Accrued liabilities consisted of the following at each balance sheet date:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:68.089%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.773%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.395%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.543%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Employee-related payables&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;881,527&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,657,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Warranty liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;160,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;166,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Acquisition liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;162,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;237,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;102,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,296,997&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,089,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90ZXh0cmVnaW9uOjE2NTE3ZjBmMjlkMDQ3NDY5MmQ5ZTBmZDQxMjkyZGEwXzY1OTcwNjk3NjY3NzE_9ecf9f50-e729-4809-8464-4ebac63b7a0c">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Accrued liabilities consisted of the following at each balance sheet date:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:68.089%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.773%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.395%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.543%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Employee-related payables&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;881,527&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,657,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Warranty liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;160,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;166,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Acquisition liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;162,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;237,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;102,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,296,997&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,089,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzItMi0xLTEtMjA3_5a1860b9-34ac-4b0a-abdb-5624921f7d2d"
      unitRef="usd">881527</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzItNC0xLTEtMjA3_d882b2d3-9de7-4b23-b915-6157e999beab"
      unitRef="usd">1657826</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzMtMi0xLTEtMjA3_b9d26c48-2117-497b-8e85-9986eb3f8ec2"
      unitRef="usd">160589</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzMtNC0xLTEtMjA3_74311284-dc41-4aee-9e18-6c5cec67f0a0"
      unitRef="usd">166301</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <pfie:AcquisitionLiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzQtMi0xLTEtMjA3_34ba6163-5316-4d65-a879-f1b5deb22094"
      unitRef="usd">17596</pfie:AcquisitionLiabilitiesCurrent>
    <pfie:AcquisitionLiabilitiesCurrent
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzQtNC0xLTEtMjA3_f4eca01a-e4e5-452a-9c2c-7ffef99aa172"
      unitRef="usd">162907</pfie:AcquisitionLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzUtMi0xLTEtMjA3_2656ae4e-ea18-48ef-81e7-10c246db1d9a"
      unitRef="usd">237285</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzUtNC0xLTEtMjA3_7d53dba7-520f-4228-9228-888181aa0062"
      unitRef="usd">102357</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzctMi0xLTEtMjA3_af1418af-604c-4fcc-9f5f-308100e4d0cf"
      unitRef="usd">1296997</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="id31afd0541a9481ca75ebc561ade36d3_I20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NjkvZnJhZzoxNjUxN2YwZjI5ZDA0NzQ2OTJkOWUwZmQ0MTI5MmRhMC90YWJsZTo1MjQyZmU5M2E5Njk0Y2JkYjRiYWJmOGJlMTcxYjI1Ny90YWJsZXJhbmdlOjUyNDJmZTkzYTk2OTRjYmRiNGJhYmY4YmUxNzFiMjU3XzctNC0xLTEtMjA3_98e745b2-440f-493e-ae17-49b1dfdaa459"
      unitRef="usd">2089391</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:LesseeFinanceLeasesTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfMTMxMg_9c1f9cbb-c66f-4a8a-8c7d-e57665836dd5">LEASES&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;We have leases for office equipment and office space. The leases for office equipment are classified as financing leases and the typical term is 36 months. We have the option to extend most office equipment leases, but we do not intend to do so. Accordingly, no extensions have been recognized in the right-of-use asset or lease liability. The office equipment lease payments are not variable and the lease agreements do not include any non-lease components, residual value guarantees, or restrictions. There are no interest rates implicit in the office equipment lease agreements, so we have used our incremental borrowing rate to determine the discount rate to be applied to our financing leases. The weighted average discount rate applied to our financing leases is 4.50% and the weighted average remaining lease term is 22.4 months.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table shows the components of financing lease cost:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:57.375%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:18.684%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.941%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Financing Lease Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,376&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Interest on lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;872&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total financing lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;19,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table reconciles future minimum lease payments to the discounted finance lease liability:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:79.101%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.395%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020 - remaining&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;94,871&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Less: Amount representing interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Present value of future payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;90,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current portion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Long-term portion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Because our office space leases are short-term, we have elected not to recognize them on our balance sheet under the short-term recognition exemption. During the three months ended March 31, 2020, we recognized $19,472 in short-term lease costs associated with office space leases.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeFinanceLeasesTextBlock>
    <us-gaap:LesseeFinanceLeaseTermOfContract1
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfMTY3_fc5a2a3a-10f0-460f-9dd1-c49a0ab689c7">P36M</us-gaap:LesseeFinanceLeaseTermOfContract1>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfNzg0_28c500a0-4102-4148-8161-259a384d66a2"
      unitRef="number">0.0450</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfODM2_63435cad-8dde-45b2-ae39-00a5a18e9cb5">P22Y4M24D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfMTMwOA_bc0aacb2-2664-482e-b3f9-ebb21c4774e7">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table shows the components of financing lease cost:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:57.375%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:18.684%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.941%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Financing Lease Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,376&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Interest on lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;872&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total financing lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;19,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjhhYzU1MDRkZDhiMjQ0YWU5OTA5ZmRhNWE1YzUxMTczL3RhYmxlcmFuZ2U6OGFjNTUwNGRkOGIyNDRhZTk5MDlmZGE1YTVjNTExNzNfMS00LTEtMS0w_94b578fa-1108-437f-a7f3-95cc9820ac91"
      unitRef="usd">18376</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjhhYzU1MDRkZDhiMjQ0YWU5OTA5ZmRhNWE1YzUxMTczL3RhYmxlcmFuZ2U6OGFjNTUwNGRkOGIyNDRhZTk5MDlmZGE1YTVjNTExNzNfMi00LTEtMS0w_35f95fb0-ac76-4723-82fc-5bdb7881802d"
      unitRef="usd">872</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:LeaseCost
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjhhYzU1MDRkZDhiMjQ0YWU5OTA5ZmRhNWE1YzUxMTczL3RhYmxlcmFuZ2U6OGFjNTUwNGRkOGIyNDRhZTk5MDlmZGE1YTVjNTExNzNfMy00LTEtMS0w_efdb770b-a3aa-4250-92bb-8480ce4508d7"
      unitRef="usd">19248</us-gaap:LeaseCost>
    <us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfMTMxMQ_85bb4cfa-a11f-48a5-81ee-0bf750d69131">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table reconciles future minimum lease payments to the discounted finance lease liability:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:79.101%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.395%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020 - remaining&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total future minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;94,871&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Less: Amount representing interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Present value of future payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;90,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current portion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Long-term portion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfMS0yLTEtMS0w_9b8aa408-8209-441f-a7a3-5febdbbdeaec"
      unitRef="usd">41147</us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfMi0yLTEtMS0w_fe6ee9c3-28ff-4787-a781-c5abc8432f54"
      unitRef="usd">40921</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfMy0yLTEtMS0w_58081e4f-da77-43b0-bc3c-5d3d86b29e87"
      unitRef="usd">12803</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfNC0yLTEtMS0w_81f6bdc4-c41c-496d-8591-746f5d8566d4"
      unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfNS0yLTEtMS0w_73f32721-c306-4cb9-8774-2929c181755e"
      unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfNi0yLTEtMS0w_65183b53-fba8-4055-ba98-89cb1bed4005"
      unitRef="usd">0</us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfNy0yLTEtMS0w_9a588081-b794-43cf-979f-dd1b098a1490"
      unitRef="usd">94871</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfOC0yLTEtMS0w_d13af6e0-2077-4ef3-882a-2356a49c15b1"
      unitRef="usd">4043</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiability
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfOS0yLTEtMS0w_5c349b35-3076-425e-b8bf-bc27c641565d"
      unitRef="usd">90828</us-gaap:FinanceLeaseLiability>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfMTAtMi0xLTEtMA_73afaee7-e1c6-461e-8aaa-019ef26ff2d9"
      unitRef="usd">50067</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RhYmxlOjA5ZjMzMWFhMWM5MjRkMDM4OThhNmE2MGQ3ZTRjMzllL3RhYmxlcmFuZ2U6MDlmMzMxYWExYzkyNGQwMzg5OGE2YTYwZDdlNGMzOWVfMTEtMi0xLTEtMA_5004a99e-710a-454c-b76a-a3f61bb72faf"
      unitRef="usd">40761</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:ShortTermLeaseCost
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82MS9mcmFnOjQ1Nzg2OWJmOTZhOTQxZDA5MWIzZjQ0MmZmNzQ4MjJlL3RleHRyZWdpb246NDU3ODY5YmY5NmE5NDFkMDkxYjNmNDQyZmY3NDgyMmVfMTIyMg_aad03754-35af-4457-bc43-51655dfc0891"
      unitRef="usd">19472</us-gaap:ShortTermLeaseCost>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg2NQ_559fb34e-e498-42f0-9ed3-f6f22a6a0132">STOCKHOLDERS' EQUITY&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;As of March 31, 2020 and December 31, 2019, the Company held 3,412,378 shares of its common stock in treasury at a total cost of $5,353,019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;2020 EIP and LTIP&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Due to market uncertainties including those caused by the COVID-19 pandemic, The Board of Directors of the Company (the "Board") and the Company's executives have elected to not adopt an executive incentive plan or long-term incentive plan for 2020. The Company's Board and executives believe this will help to align the Company's cost structure in the short-term, with the current extraordinary market conditions, in an effort to return to profitability. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;2019 EIP&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On April&#160;22, 2019, the Board approved the 2019 Executive Incentive Plan (the &#x201c;2019 EIP&#x201d;) for Brenton W. Hatch, the Company&#x2019;s President and Chief Executive Officer, Ryan W. Oviatt, the Company&#x2019;s Chief Financial Officer, Cameron M. Tidball, the Company&#x2019;s Chief Business Development Officer, Jay G. Fugal, the Company&#x2019;s Vice President of Operations, and Patrick D. Fisher, the Company&#x2019;s Vice President of Product Development. The 2019 EIP provided for the potential award of bonuses to the participants based on the Company&#x2019;s financial performance in fiscal year 2019.  &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On March 4, 2020, the Company's Board of Directors approved a one-time executive bonus in the amount of $828,787 for meeting targets pursuant to the 2019 EIP. Half of the bonus was paid in cash and half of the bonus was settled by issuing 343,748 shares of common stock under the Company's 2014 Equity Incentive Plan, as amended (the "2014 Plan") which was fully vested on the date of grant. T&lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;he stock portion of the bonuses constitutes an award under the Company&#x2019;s 2014 Equity Incentive Plan, as amended (the &#x201c;Plan&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Under the terms of the EIP, each participating executive officer was assigned a target bonus amount for fiscal 2019. The target bonus amount for Mr. Hatch was $412,000, the target bonus amount for Mr. Oviatt was $90,125, the target bonus amount for Mr. Tidball was $84,357, the target bonus for Mr. Fugal was $41,200, and the target bonus for Mr. Fisher was $29,142. Under no circumstance can the participants receive more than two times the target bonus amount assigned to such participant.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Participants were eligible to receive bonuses based upon reaching or exceeding performance goals established by the Board or its Compensation Committee for fiscal 2019. The performance goals in the EIP are based on the Company&#x2019;s total revenue, &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;net income, free cash flow, and product development milestones.  Each of these performance goals were weighted 25% in calculating bonus amounts.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;2019 LTIP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On April 22, 2019 the Board also adopted the 2019 Long-Term Incentive plan (the "2019 LTIP") for certain of the Company's executive officers. The 2019 LTIP consists of total awards of up to 66,213 restricted stock units (&#x201c;Units&#x201d;) to Mr. Oviatt, up to 51,646 Units to Mr. Tidball, up to 35,313 Units to Mr. Fugal, and up to 24,862 Units to Mr. Fisher pursuant to two separate Restricted Stock Unit Award Agreements to be entered between the Company and each participant under the 2014 Plan.  One agreement covers 33% of each award recipient&#x2019;s Units that are subject to time-based vesting, and the other agreement covers the remaining 67% of such award recipient&#x2019;s Units that may vest based on performance metrics. Upon vesting, the award agreements entitle the award recipients to receive one share of the Company&#x2019;s common stock for each vested Unit. The vesting period of the 2019 LTIP began on January&#160;1, 2019 and terminates on December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On March 4, 2020, the Company's Board of Directors approved a one-time executive bonus that was settled by issuing 16,689 shares of common stock for meeting targets pursuant to the previously announced "2017 Long-Term Incentive Plan", which shares were issued under the Company's 2014 Equity Incentive Plan. These shares were fully vested as of March 4, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;2019 RSUs&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On March&#160;14, 2019, the Board approved a grant of 85,000 restricted stock units ("RSUs") to various employees. The awards vest annually over five years and will result in a total compensation expense of $149,600 to be recognized over the vesting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On June&#160;12, 2019, the Board approved a grant of 183,942 RSUs to Independent Directors. Half of the RSUs vest immediately on the date of grant and the remaining 50% of the RSUs will vest on the first anniversary of the grant date or at the Company's next Annual Meeting of Stockholders, whichever is earlier. The awards will result in total compensation expense of $252,000 to be recognized over the vesting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:36pt;text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;2020 Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:36pt;text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On March 17, 2020 (the "Grant Date"), the Board approved a grant of  options to purchase 115,200 shares of the Company's common stock at a strike price of $0.81 to various employees (the "Options"). The Options terminate four years from the Grant Date and the Options shall become exercisable as to 1/3 of the shares of common stock covered thereby on each anniversary of the Grant Date for the next three years. The Options will result in a total compensation expense of $40,280 to be recognized over the vesting period.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:TreasuryStockShares
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzMjk2Mw_4ec0070c-fea6-4e72-9265-9f26b3acdf47"
      unitRef="shares">3412378</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTM5_4870442b-c80d-4347-879e-ee19e45b1956"
      unitRef="usd">5353019</us-gaap:TreasuryStockValue>
    <us-gaap:LaborAndRelatedExpense
      contextRef="idcb090c4deb34f60accdb340009e4d55_D20200304-20200304"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNzU5Mw_56c6393c-4509-45ed-8e61-f4ace56c7d26"
      unitRef="usd">828787</us-gaap:LaborAndRelatedExpense>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross
      contextRef="i087d6bd65a2d4a55bf9390814272f1e3_D20200304-20200304"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNzc2Ng_2d513bef-1bd3-4950-a585-c3ec81b2d49e"
      unitRef="shares">343748</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross>
    <pfie:ExecutiveCompensationTargetBonusPayout
      contextRef="i9c3613f2510242bfb2af94359623f867_I20190422"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNTQ0OA_c791a89a-76bb-449b-8bad-8cd1cf1b6432"
      unitRef="usd">412000</pfie:ExecutiveCompensationTargetBonusPayout>
    <pfie:ExecutiveCompensationTargetBonusPayout
      contextRef="iaae60d9c116243b0b3db5e414381dd33_I20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNTQ2OA_b1c375b9-b2c3-4cea-aaac-439aee4b0d8e"
      unitRef="usd">90125</pfie:ExecutiveCompensationTargetBonusPayout>
    <pfie:ExecutiveCompensationTargetBonusPayout
      contextRef="i06d3764e97e44fde92634072c8e36765_I20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNTQ4MA_23480f62-08ef-43c8-a957-981c1b6c8453"
      unitRef="usd">84357</pfie:ExecutiveCompensationTargetBonusPayout>
    <pfie:ExecutiveCompensationTargetBonusPayout
      contextRef="i1e2745d6cbd943ff97c4f53d192a30dd_I20190422"
      decimals="-2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNTQ4NQ_2855de73-e507-4180-a26e-efbbd4f4dca3"
      unitRef="usd">41200</pfie:ExecutiveCompensationTargetBonusPayout>
    <pfie:ExecutiveCompensationTargetBonusPayout
      contextRef="i736ed03712a54ea8a5f987d33f25b70c_I20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzNTQ4OQ_bf4241e3-0bcf-49b6-bd96-43fb50b7a484"
      unitRef="cad">29142</pfie:ExecutiveCompensationTargetBonusPayout>
    <pfie:ShareBasedCompensationArrangementsByShareBasedPaymentAwardMaximumTargetBonusMultiplier
      contextRef="i517c1d15c878448a97ef59798d4a6ff7_I20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg0ODI5MDcwODcwNA_c24deb98-a8c1-4bd8-a28f-949a3e4e21a8"
      unitRef="number">2</pfie:ShareBasedCompensationArrangementsByShareBasedPaymentAwardMaximumTargetBonusMultiplier>
    <pfie:PerformanceGoalWeight
      contextRef="i517c1d15c878448a97ef59798d4a6ff7_I20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTk5Nw_72aca54d-7251-405c-88ac-498a22ba65e3"
      unitRef="number">0.25</pfie:PerformanceGoalWeight>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i31580ed4186e436cbb05eb1e1bdf60f6_D20190422-20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjU1NA_f76bff23-fe89-481e-bc9c-0bb84a211263"
      unitRef="shares">66213</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ia721535fd6944d24815fd9f1754fe917_D20190422-20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjYxMQ_aa562119-d2cd-4e0e-8079-fc3fa794aa7d"
      unitRef="shares">51646</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i9cf4ee038c104982b3df617bc37b9fb9_D20190422-20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjY0Mg_6c97ce26-5b49-48f7-8007-e5054cc46451"
      unitRef="shares">35313</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ibfcdef540b4d4739a9aaec92aded06e7_D20190422-20190422"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjY3NQ_cdd209ce-cf23-42d8-b821-a17a26fe8faf"
      unitRef="shares">24862</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <pfie:PercentageOfAwardCoveredByMetric
      contextRef="i15d5ffb1f73048e19b424781d08f7201_I20190422"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjg0MA_3c85fc2a-7213-4ac5-9707-22c19c3e5b41"
      unitRef="number">0.33</pfie:PercentageOfAwardCoveredByMetric>
    <pfie:PercentageOfAwardCoveredByMetric
      contextRef="ia95232b84f0442adb97d84ef9294bd77_I20190422"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMjk2MA_66bedc6a-1021-4484-8d92-6812568acc4d"
      unitRef="number">0.67</pfie:PercentageOfAwardCoveredByMetric>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross
      contextRef="iafcad8d3cbd74f3d8e7045f922215c71_D20200304-20200304"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMTA5OTUxMTYzODU2MA_d525dcd3-d4df-4a76-9ff7-505c781d72c1"
      unitRef="shares">16689</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="if4652177fa644ab89e9ec049c4381c01_D20190314-20190314"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzI4Mw_83063d0d-030f-428d-b50c-b9abc6ecba8d"
      unitRef="shares">85000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="if4652177fa644ab89e9ec049c4381c01_D20190314-20190314"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzM3MA_a8516b36-c0ea-4456-bd45-a6f6dd76bad6">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i604e2ca4a571476ebc94c7f3917ead29_I20190314"
      decimals="-2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzQyNA_28efdda7-db3b-49e7-b500-ebee90d1f4da"
      unitRef="usd">149600</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="if526fb6777404e0ab32916ba855e95a5_D20190612-20190612"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzUwNw_7b99de6f-4fd0-4d34-9d6b-ededabf0eaf1"
      unitRef="shares">183942</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage
      contextRef="if526fb6777404e0ab32916ba855e95a5_D20190612-20190612"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzYxNA_17e22406-872d-4d69-81d0-9d2f8114a6d9"
      unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="ia1d25ba0c5b3415099b4e6ab0bc7111d_I20190612"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzgxNw_f0da991c-b6ba-46b3-9339-ab1212a99292"
      unitRef="usd">252000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i9865cbd1238349cb8a973a1ff2d44b10_D20200317-20200317"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg0ODI5MDcwODYzNg_cde6122b-390a-456b-bbd2-f9bb5619a4d2"
      unitRef="shares">115200</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i9865cbd1238349cb8a973a1ff2d44b10_D20200317-20200317"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg0ODI5MDcwODY0NQ_098a474c-65df-46eb-b2f8-f5341256cbe3"
      unitRef="usdPerShare">0.81</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="ie359b9cb85dd4898a8375bff35bfabed_D20200317-20200317"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg0ODI5MDcwODY3NA_e9a07938-355b-4956-ab49-80142eddff84">P4Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ie359b9cb85dd4898a8375bff35bfabed_D20200317-20200317"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfNjA0NzMxMzk2NDI0Ng_1159ee61-5413-487d-8e2d-f974bed83085">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i872293786f61445692027f3020119fd7_I20200317"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80My9mcmFnOjI1Mjc0Mzc0MGFlMzQ1YzFhNmU5OGFjZTg3MmM3YWJkL3RleHRyZWdpb246MjUyNzQzNzQwYWUzNDVjMWE2ZTk4YWNlODcyYzdhYmRfMzg0ODI5MDcwODY1Mg_2191267f-f0ba-4cdd-8c6d-22da46bb0cab"
      unitRef="usd">40280</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMzQxNQ_b4a64670-30ff-4d96-af2a-d89720291812">ACQUISITIONS&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Millstream Energy Products&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;On June&#160;18, 2019, our wholly-owned subsidiary, Profire Combustion, Inc., acquired substantially all the assets from Millstream Energy Products, LTD., a Canadian corporation ("MEP"). MEP is a privately-held Canadian company that develops a line of high-performance burners, economy burners, flame arrestor housings, secondary air control plates, and other related combustion components. MEP&#x2019;s full line of products became available for sale by Profire&#x2019;s existing sales team immediately after closing of the transaction. These products complement our burner-management system (BMS) product offerings and should enable us to supply a larger portion of the total BMS package sale to our customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The acquisition was accounted for as a business combination in accordance with ASC 805, &lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;"&gt;Business Combinations&lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;. The purchase price of $2,219,782 was funded through existing cash. Of this cash purchase amount $140,257 was held back for 6 months pending satisfaction of seller obligations under the purchase agreement and was settled with the seller on February 20, 2020.  The seller is also entitled to receive a 4.5% royalty on proprietary MEP product revenue generated during the next five years. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;Profire hired a valuation firm to perform the purchase price allocation based on the net assets received and the price paid. Based on the fair value of the net assets at the time of purchase, the Company recorded intangible assets in the amount of &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;$990,000 and goodwill of $17,681. Intangible assets include customer relationships, the trade name and developed technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:84.904%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.096%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The purchase price calculation is a follows:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,079,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;140,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,219,782&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The following table summarizes the estimated fair value of the assets acquired and liabilities assumed at the date of purchase:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;207,145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,119,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;990,000&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(114,187)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,219,782&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Transaction and related costs directly related to the acquisition of MEP, consisting primarily of professional fees and integration expenses, have amounted to approximately $136,811, were expensed as incurred and are included in general and administrative expenses.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Midflow Services&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;On August&#160;5, 2019, we acquired all of the outstanding membership interests of Midflow Services, LLC ("Midflow"). Midflow is based in Millersburg, Ohio. Midflow provides packaged combustion solutions and services to the upstream and midstream oil and gas industry. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The acquisition was accounted for as a business combination in accordance with ASC 805, &lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;"&gt;Business Combinations&lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;. The purchase price of $3,439,371 was funded through a combination of existing cash and shares of the Company's common stock. The cash portion of the purchase price includes $500,000 placed in an escrow account for 12 months pending satisfaction of certain obligations under the purchase agreement. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;Profire hired a valuation firm to perform the purchase price allocation based on the net assets received and the price paid. Based on the fair value of the net assets at the time of purchase, the Company recorded intangible assets in the amount of $1,110,000 and goodwill of $1,564,000.  Intangible assets include customer relationships, the trade name and developed technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:84.904%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.096%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The purchase price calculation is as follows:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,419,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,020,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,439,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The following table summarizes the estimated fair value of the assets acquired and liabilities assumed at the date of purchase:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;324,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;269,746&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Prepaid expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;13,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;126,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,110,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,564,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(134,956)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accrual liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(6,438)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,439,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Transaction costs directly related to the acquisition of Midflow, consisting primarily of professional fees and integration expenses, amounted to approximately $44,087. All of these costs were expensed as incurred and are included in general and administrative expenses.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTAwNQ_f52b9049-d068-4e5f-be70-ff7777d40e96"
      unitRef="usd">2219782</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTA3Mg_715b13f4-1d91-4260-b8c4-ae0cb73f02dd"
      unitRef="usd">140257</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <pfie:BusinessCombinationConsiderationTransferredLiabilitiesIncurredHoldingPeriod
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTA5Mw_27708548-fbec-487d-b752-fa87616f8e41">P6M</pfie:BusinessCombinationConsiderationTransferredLiabilitiesIncurredHoldingPeriod>
    <pfie:RoyaltyPercentage
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTI5NA_3badf000-4bb9-4b21-8a21-05bb1ac9df6c"
      unitRef="number">0.045</pfie:RoyaltyPercentage>
    <pfie:RoyaltyRevenuePeriod
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTM2Ng_e42167b1-5ac6-4517-893b-49c1c94e2e0e">P5Y</pfie:RoyaltyRevenuePeriod>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTYyMQ_6cdd5730-81ba-4d56-8412-35996a19604c"
      unitRef="usd">990000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTA5OTUxMTY0MTY0MQ_772af01c-00dc-4a49-8a9b-c22e1f02f1ea"
      unitRef="usd">17681</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfNjU5NzA2OTc3NzQ0MQ_a7672d8e-50e2-44dc-910b-7a5b4b80029d">&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:84.904%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.096%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The purchase price calculation is a follows:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,079,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;140,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,219,782&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The following table summarizes the estimated fair value of the assets acquired and liabilities assumed at the date of purchase:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;207,145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,119,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;990,000&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(114,187)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,219,782&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:84.904%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.096%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The purchase price calculation is as follows:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,419,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,020,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,439,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:3pt double #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;The following table summarizes the estimated fair value of the assets acquired and liabilities assumed at the date of purchase:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;324,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;269,746&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Prepaid expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;13,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;126,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,110,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,564,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(134,956)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accrual liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(6,438)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,439,371&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsTableTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfMS0xLTEtMS0w_9e3dc0de-4853-4883-8d7b-d744b6e22837"
      unitRef="usd">2079525</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfMi0xLTEtMS0w_b165b8b0-32e3-4aa1-a5c3-1d0b6ce5caf8"
      unitRef="usd">140257</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfMy0xLTEtMS0w_d48cdb2c-05fe-49ec-8e3a-51d6235cb4ab"
      unitRef="usd">2219782</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfNi0xLTEtMS0w_79644751-db51-4863-be3b-bc98a9533d3a"
      unitRef="usd">207145</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfNy0xLTEtMS0w_e3806fd2-2afa-49f4-878e-e038657a3879"
      unitRef="usd">1119143</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfOC0xLTEtMS0w_5cc29e15-6ad8-4563-bc17-863ade9469b5"
      unitRef="usd">990000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfOS0xLTEtMS0w_a0228329-2f44-406a-aa02-888360154a6b"
      unitRef="usd">17681</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfMTAtMS0xLTEtMA_394fdf89-5c81-4048-9398-ff6d4345045f"
      unitRef="usd">114187</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="i3510502a2edd4597adefff976a37d7e1_I20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOmFiNTU4MmU2OTU2YTRmZjlhMzdjMTczZTEyNjVmMDE2L3RhYmxlcmFuZ2U6YWI1NTgyZTY5NTZhNGZmOWEzN2MxNzNlMTI2NWYwMTZfMTEtMS0xLTEtMA_533c6461-c7da-44af-82de-eae9201c641c"
      unitRef="usd">2219782</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="ie09415721a8b482dbdcf68ddb51e4797_D20190618-20190618"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTg3MA_32c8e22e-45f0-40bd-a1e5-61a7047648c1"
      unitRef="usd">136811</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMjY3Mw_47ee9c4a-b0c6-4e2f-8c62-28f774d448fd"
      unitRef="usd">3439371</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:EscrowDeposit
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMjgxNg_c5cc6d92-a22a-42ca-bcf8-9d537660281c"
      unitRef="usd">500000</us-gaap:EscrowDeposit>
    <pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTY0OTI2NzQ1MjMzMw_758e67da-13cb-4a50-8639-c99c7630076c"
      unitRef="usd">1110000</pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill>
    <us-gaap:Goodwill
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMTY0OTI2NzQ1MjM1Mw_14319177-182f-4e37-8fb2-7081b5277f73"
      unitRef="usd">1564000</us-gaap:Goodwill>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMS0xLTEtMS0w_493d8d03-c49d-4653-9bdd-5a498234e7e9"
      unitRef="usd">2419371</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMi0xLTEtMS0w_9a76dbe2-c43b-4d5f-84b1-9aec2c65e53a"
      unitRef="usd">1020000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMy0xLTEtMS0w_36c39f8d-4f03-44cc-96ac-c746ad93e1b8"
      unitRef="usd">3439371</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfNi0xLTEtMS0w_ef5ee207-697b-4b0d-8ec6-a96c312b7b96"
      unitRef="usd">172850</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfNy0xLTEtMS0w_1482c262-87c9-41a1-bf40-993f612b50e3"
      unitRef="usd">324989</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfOC0xLTEtMS0w_ec1200f1-e0fb-4596-aaae-ed9169847b89"
      unitRef="usd">269746</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfOS0xLTEtMS0w_df5e8236-7e12-41a5-9c26-cd42a8851512"
      unitRef="usd">13180</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTAtMS0xLTEtMA_4306830a-33b3-41c3-b51c-4f2e846cad92"
      unitRef="usd">126000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTEtMS0xLTEtMA_6ce7eb08-24fc-4291-9c0e-e2d809566e0c"
      unitRef="usd">1110000</pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill>
    <us-gaap:Goodwill
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTItMS0xLTEtMjkw_d794b36f-3b20-423c-9417-135456baa47c"
      unitRef="usd">1564000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTItMS0xLTEtMA_7dc9ac3d-aa9b-47cb-a979-bc2623417eca"
      unitRef="usd">134956</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilitiesCurrentLiabilities
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTMtMS0xLTEtMA_cce48167-cc68-4cf5-8ec7-d522ded39508"
      unitRef="usd">6438</pfie:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilitiesCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="ic6a3440783a0461a80dbcf404eb5d590_I20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RhYmxlOjc4NWYzMWRhMDNjNjRiN2VhMDA4MzQyMTU4MjIzNzY3L3RhYmxlcmFuZ2U6Nzg1ZjMxZGEwM2M2NGI3ZWEwMDgzNDIxNTgyMjM3NjdfMTQtMS0xLTEtMA_1bf735ca-6859-497f-9884-c961e594750a"
      unitRef="usd">3439371</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="iff52f85ff1ca4001b224f6192975547f_D20190805-20190805"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV82Ny9mcmFnOjhjOTNkZTM3N2QwYzQxNzFiNGEzNTU4NjM0YzY1MWYwL3RleHRyZWdpb246OGM5M2RlMzc3ZDBjNDE3MWI0YTM1NTg2MzRjNjUxZjBfMzMwNw_902a0fa7-e673-469c-b617-08236be4940a"
      unitRef="usd">44087</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfMTc3NQ_943aa1d0-639f-421c-a8bb-95c2abe9e351">REVENUE&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Our performance obligations include providing product and servicing our product. We recognize product revenue performance obligations in most cases when the product is delivered to the customer. Occasionally, if we are shipping the product on a customer&#x2019;s account, we recognize revenue when the product has been shipped. At that point in time, the control of the product is transferred to the customer. When we perform service work, we apply the practical expedient that allows us to recognize service revenue when we have the right to invoice the customer for the work completed. We do not engage in transactions acting as an agent. The time needed to complete our performance obligations varies based on the size of the project; however, we typically satisfy our performance obligations within a few months of entering into the applicable sales contract or service contract.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Our customers have the right to return certain unused and unopened products within 90 days for an appropriate restocking fee. We provide a warranty on some of our products ranging from 90 days to 2 years, depending on the product. The amount accrued for expected returns and warranty claims was immaterial as of March 31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;We have elected to use the practical expedient in ASC 340-40-25-4 (regarding recognition of the incremental costs of obtaining a contract) for costs related to contracts that are estimated to be completed within one year. All of our current sales contracts and service contracts are expected to be completed within one year, and as a result, we have not recognized a contract asset account. If we had chosen not to use this practical expedient, we would not expect a material difference in the contract balances. We also did not have any material contract liabilities because we typically do not receive payments in advance of recognizing revenue.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Disaggregation of Revenue&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;All revenue recognized in the income statement is considered to be revenue from contracts with customers. The table below shows revenue by category:&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfMTc3MQ_c74b8b2f-d0cd-49b1-b739-de8e5cf4b64a">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Our performance obligations include providing product and servicing our product. We recognize product revenue performance obligations in most cases when the product is delivered to the customer. Occasionally, if we are shipping the product on a customer&#x2019;s account, we recognize revenue when the product has been shipped. At that point in time, the control of the product is transferred to the customer. When we perform service work, we apply the practical expedient that allows us to recognize service revenue when we have the right to invoice the customer for the work completed. We do not engage in transactions acting as an agent. The time needed to complete our performance obligations varies based on the size of the project; however, we typically satisfy our performance obligations within a few months of entering into the applicable sales contract or service contract.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Our customers have the right to return certain unused and unopened products within 90 days for an appropriate restocking fee. We provide a warranty on some of our products ranging from 90 days to 2 years, depending on the product. The amount accrued for expected returns and warranty claims was immaterial as of March 31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;We have elected to use the practical expedient in ASC 340-40-25-4 (regarding recognition of the incremental costs of obtaining a contract) for costs related to contracts that are estimated to be completed within one year. All of our current sales contracts and service contracts are expected to be completed within one year, and as a result, we have not recognized a contract asset account. If we had chosen not to use this practical expedient, we would not expect a material difference in the contract balances. We also did not have any material contract liabilities because we typically do not receive payments in advance of recognizing revenue.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <pfie:ContractWithCustomerReturnPeriod
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfNjU5NzA2OTc2OTc5Nw_8a767d1a-da1c-41b3-b9c2-d3d600e06178">P90D</pfie:ContractWithCustomerReturnPeriod>
    <pfie:ContractWithCustomerProductWarrantyTerm
      contextRef="ie27e464cae96462dba28ac97d89caa04_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfNjU5NzA2OTc2OTgxNQ_494ab073-0859-4bfe-8dc0-ad5e07b4e199">P90D</pfie:ContractWithCustomerProductWarrantyTerm>
    <pfie:ContractWithCustomerProductWarrantyTerm
      contextRef="i12f35c34dea74fc6a5dcfd52f565b9fc_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfNjU5NzA2OTc2OTgzMg_8090ecb0-7970-4191-82a0-022a774aee1d">P2Y</pfie:ContractWithCustomerProductWarrantyTerm>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RleHRyZWdpb246Zjc0YTNmMDAzNzk5NDhlNDhmNjdhOTYwMzY5YjFiZjRfMTc3NA_842eac0b-8977-45b2-b2ca-a8f2db0c689d">The table below shows revenue by category:&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:20.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:39.220%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.071%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.395%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.495%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Electronics&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,657,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,646,597&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Manufactured&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;400,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;430,593&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Re-Sell&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,803,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,121,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Service&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;586,184&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;634,423&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,447,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,833,058&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i929a48f923c849f09c03e97c2858ffbb_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfMi02LTEtMS0w_91705ea6-5a35-43c5-bc9e-a3c1c33fc5ec"
      unitRef="usd">2657087</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2d1453707a4c4fd5944f2acdf82e7bfd_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfMi04LTEtMS0w_66e76595-0003-4fc6-bd29-61e0edef6f1e"
      unitRef="usd">4646597</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6f8c4442149f4a7cacab83e080a02321_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfMy02LTEtMS0w_cde28b5f-256b-4d97-826f-737e6a326a0b"
      unitRef="usd">400858</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iabd2563455cc4a51806830e0bb67de54_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfMy04LTEtMS0w_1a8c781a-622e-4304-be39-ef9717d478c4"
      unitRef="usd">430593</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6332e83bf03b413a8f767b5fb1528e12_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNC02LTEtMS0w_0d4313e9-36b3-4feb-b2e6-d55e39355176"
      unitRef="usd">3803013</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i957562319a84431ab1829cf30540c536_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNC04LTEtMS0w_b04b1ce5-cea3-423e-9775-68e08c60364d"
      unitRef="usd">5121445</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6fcbf5d800524e619b2a41375e10989d_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNS02LTEtMS0w_9b1a1b9a-5f87-41ed-b125-822627653cc6"
      unitRef="usd">586184</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i373dd8d067e448bc98024bff53099c6b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNS04LTEtMS0w_a5698d68-2c04-4168-94bc-076fcc554fd3"
      unitRef="usd">634423</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNi02LTEtMS0w_d58442d2-9716-4c1a-b7eb-6bb14d3fd626"
      unitRef="usd">7447142</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80OS9mcmFnOmY3NGEzZjAwMzc5OTQ4ZTQ4ZjY3YTk2MDM2OWIxYmY0L3RhYmxlOmE1ODQyZTg1Zjk5MTQxZDE4YTE2NDI5YzI4MzEwMTMxL3RhYmxlcmFuZ2U6YTU4NDJlODVmOTkxNDFkMThhMTY0MjljMjgzMTAxMzFfNi04LTEtMS0w_0c7ed817-03bf-4a66-9a67-ccc1dfcc38f7"
      unitRef="usd">10833058</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfODk1_2a1a1af6-6d8d-4be5-9c03-faa62edcb84c">BASIC AND DILUTED EARNINGS PER SHARE&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table is a reconciliation of the numerator and denominators used in the earnings per share calculation:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:99.553%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:28.493%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.397%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.210%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.004%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:5.772%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.360%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.602%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:6.227%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="33" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income (Numerator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted Average Shares (Denominator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Per-Share&lt;br/&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income (Numerator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted Average Shares (Denominator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Per-Share&lt;br/&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Basic EPS&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net income (loss) available to common stockholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,492,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,437,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Effect of Dilutive Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Stock options &amp;amp; RSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;646,966&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Diluted EPS&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net income available to common stockholders + assumed conversions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,492,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;48,084,390&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Stock options and RSU's to purchase 784,769 shares of common stock at a weighted average price of $1.28 per share were outstanding during the three months ended March 31, 2020, but were not included in the computation of diluted EPS because the impact of these shares would be antidilutive. These stock options and RSU's, which expire between May 2020 and March 2024, were still outstanding at March 31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Stock options to purchase 245,600 shares of common stock at a weighted average price of $3.88 per share were outstanding during the three months ended March 31, 2019, but were not included in the computation of diluted EPS because the impact of these shares would be antidilutive. These options, which expire between November 2019 and May 2020, were still outstanding at March 31, 2019.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfODk4_cc17ce4f-22d6-4b5e-9cef-54a718da0375">&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table is a reconciliation of the numerator and denominators used in the earnings per share calculation:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:99.553%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:28.493%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.397%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.210%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.004%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:5.772%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.360%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.602%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.547%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:6.227%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="33" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income (Numerator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted Average Shares (Denominator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Per-Share&lt;br/&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income (Numerator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted Average Shares (Denominator)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Per-Share&lt;br/&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Basic EPS&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net income (loss) available to common stockholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,492,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,437,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Effect of Dilutive Securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Stock options &amp;amp; RSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;646,966&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Diluted EPS&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net income available to common stockholders + assumed conversions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;47,492,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(0.01)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;48,084,390&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Stock options and RSU's to purchase 784,769 shares of common stock at a weighted average price of $1.28 per share were outstanding during the three months ended March 31, 2020, but were not included in the computation of diluted EPS because the impact of these shares would be antidilutive. These stock options and RSU's, which expire between May 2020 and March 2024, were still outstanding at March 31, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Stock options to purchase 245,600 shares of common stock at a weighted average price of $3.88 per share were outstanding during the three months ended March 31, 2019, but were not included in the computation of diluted EPS because the impact of these shares would be antidilutive. These options, which expire between November 2019 and May 2020, were still outstanding at March 31, 2019.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC0yLTEtMS0w_418aa315-f488-474c-ba00-48cdd4802356"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC00LTEtMS0w_1d83d187-a11c-44d0-9c79-a17db7499531"
      unitRef="shares">47492441</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC02LTEtMS0w_819d4f14-8e9d-48f2-979b-9a508b7b8aa7"
      unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:NetIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC04LTEtMS0w_2f40edbb-5363-476c-b163-e8ca7d7692fd"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC0xMC0xLTEtMA_0972e2f4-50d6-4970-bb79-5477138b42a5"
      unitRef="shares">47437424</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNC0xMi0xLTEtMA_746626ed-1feb-499e-a5f3-a1773431f12a"
      unitRef="usdPerShare">0.04</us-gaap:EarningsPerShareBasic>
    <us-gaap:DilutiveSecurities
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNy0yLTEtMS0w_edc996f1-2841-4eac-93f6-d4c03e4a0d2d"
      unitRef="usd">0</us-gaap:DilutiveSecurities>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNy00LTEtMS0w_fd51341b-f39b-4df3-95f9-284ff8e2edea"
      unitRef="shares">0</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:DilutiveSecurities
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNy04LTEtMS0w_a3bafc4f-8a94-436b-884c-b0a3b62ce6ba"
      unitRef="usd">0</us-gaap:DilutiveSecurities>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfNy0xMC0xLTEtMA_475602ac-e890-46ce-83c4-82edf82ca16e"
      unitRef="shares">646966</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtMi0xLTEtMA_908bee01-cbbb-470b-baf4-e44ec23c0925"
      unitRef="usd">-365264</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtNC0xLTEtMA_cc03474f-91ad-4407-be36-f09603a9526b"
      unitRef="shares">47492441</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtNi0xLTEtMA_d5c1bb3c-2f77-4dfb-a70e-924140e073f3"
      unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtOC0xLTEtMA_f6b8c29c-d035-42fa-b1e5-c14080a3139d"
      unitRef="usd">1668618</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtMTAtMS0xLTA_d14f0e28-42b3-45d6-a04c-c489ce36723d"
      unitRef="shares">48084390</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RhYmxlOjFhZmViOTA0MjZlMDRjMzU4MWM4N2IzOGQ4NTRiMDg5L3RhYmxlcmFuZ2U6MWFmZWI5MDQyNmUwNGMzNTgxYzg3YjM4ZDg1NGIwODlfMTAtMTItMS0xLTA_47f1398e-5ec2-4c7f-bcd9-57aff5c7a05b"
      unitRef="usdPerShare">0.03</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfMTA5OTUxMTYyOTUxNg_f5ce9c3f-6303-42c0-ad65-4a1b97eaf1ee"
      unitRef="shares">784769</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfNetIncomePerOutstandingUnitAmount
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfMTA5OTUxMTYyOTIwMg_447b1c1b-2878-4549-9765-3a969fd06a43"
      unitRef="usdPerShare">1.28</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfNetIncomePerOutstandingUnitAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfMjAx_4b41d8be-a3a4-4f80-ab3b-1dd8bf8b3ff9"
      unitRef="shares">245600</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfNetIncomePerOutstandingUnitAmount
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV81NS9mcmFnOjYzOGQxNDBhMjEwYjRmMDNhYTU2ZDA2NTFiMTIyNzY2L3RleHRyZWdpb246NjM4ZDE0MGEyMTBiNGYwM2FhNTZkMDY1MWIxMjI3NjZfMjY1_e0cc83d2-bb2e-4a9f-908e-42eb0272bf0f"
      unitRef="usdPerShare">3.88</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfNetIncomePerOutstandingUnitAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RleHRyZWdpb246ODE3Yjg0N2IxOGZlNGY4N2FlODc5OTkwOTZlYjllZWZfMTU2_66b0909b-09a2-4265-bb1f-1cdb8fd511ab">SEGMENT INFORMATION&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company operates in the United States and Canada. Segment information for these geographic areas is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;"&gt;&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:97.619%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:27.878%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:33.213%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.615%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.562%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:15.532%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,023,722&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;935,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,423,420&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,897,420&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,447,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,833,058&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Profit (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(322,069)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(382,040)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(43,195)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,050,658&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Long-Lived Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,822,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,068,061&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,249,893&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,080,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,072,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;24,148,136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RleHRyZWdpb246ODE3Yjg0N2IxOGZlNGY4N2FlODc5OTkwOTZlYjllZWZfMTU0_5adbffb2-114e-406a-90d6-cbe5dc2f648d">Segment information for these geographic areas is as follows:&lt;table style="margin-left:auto;margin-right:auto;border-collapse:collapse;text-align:left;text-indent:0pt;display:inline-table;width:97.619%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:27.878%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:33.213%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.615%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.562%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:15.532%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sales&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,023,722&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;935,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,423,420&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,897,420&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,447,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,833,058&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;For the Three Months Ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Profit (Loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(322,069)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(382,040)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(43,195)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,050,658&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(365,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,668,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:15pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;As of&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Long-Lived Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;March 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canada&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,822,346&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:2pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,068,061&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:2pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,249,893&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,080,075&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:12pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Consolidated&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,072,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;24,148,136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:3pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id73434e531e7481ba29117b33afd4869_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMi02LTEtMS0w_e733c609-1008-4f9c-8c6d-397ab442fbeb"
      unitRef="usd">1023722</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2edde0705e604114971d554d45b3d4ff_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMi04LTEtMS0w_5246ea23-446a-4e15-ab37-f814990a573b"
      unitRef="usd">935638</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3ea13b85d44d4e5cb47a2a12dc9c5404_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMy02LTEtMS0w_34fcdaf5-6780-4b34-be29-50fe8eb7dd76"
      unitRef="usd">6423420</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id187bf47ab1b473095d61370d0eb121b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMy04LTEtMS0w_94727c7e-9148-4f7b-8454-8cef8afd64e6"
      unitRef="usd">9897420</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfNC02LTEtMS0w_2fb86ef3-5091-42c3-832f-5a81069597e8"
      unitRef="usd">7447142</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfNC04LTEtMS0w_a733fc7d-341d-431a-add0-008364ceb5f7"
      unitRef="usd">10833058</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NetIncomeLoss
      contextRef="id73434e531e7481ba29117b33afd4869_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfOC02LTEtMS0w_16d79a58-6264-49dd-aab0-c62ab3ddda76"
      unitRef="usd">-322069</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2edde0705e604114971d554d45b3d4ff_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfOC04LTEtMS0w_aee42991-fdb7-41c6-8036-4141b1a80389"
      unitRef="usd">-382040</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i3ea13b85d44d4e5cb47a2a12dc9c5404_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfOS02LTEtMS0w_a126f779-371c-4b4d-895a-70809a388891"
      unitRef="usd">-43195</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="id187bf47ab1b473095d61370d0eb121b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfOS04LTEtMS0w_8d410d61-3828-4ca4-aa89-dc976fa01b77"
      unitRef="usd">2050658</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTAtNi0xLTEtMA_d16fd762-55cc-4439-be02-72d9f9101a70"
      unitRef="usd">-365264</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7aff810847c440c4a4c652f2fca8d92b_D20190101-20190331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTAtOC0xLTEtMA_94e911cd-b9a2-4d9e-908e-88a4107d95f7"
      unitRef="usd">1668618</us-gaap:NetIncomeLoss>
    <us-gaap:NoncurrentAssets
      contextRef="i209221a50c2e4e329727f422e821f300_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTQtNi0xLTEtMA_722cb3a2-45f0-490e-83dc-50e15a409851"
      unitRef="usd">5822346</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i4e3bd01f5cba431c9a299840fae5769b_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTQtOC0xLTEtMA_71588257-da51-4dfb-8fb1-cbc6740685ae"
      unitRef="usd">6068061</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="id7fd469289964304bbb2dac6e6dba4f4_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTUtNi0xLTEtMA_8311df1d-6f73-4348-bd01-ebdbfc891145"
      unitRef="usd">17249893</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i861518993bec48f385f4fdae33e5cb15_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTUtOC0xLTEtMA_f7c0f9c1-2d18-4340-9d5a-593e5f267b9f"
      unitRef="usd">18080075</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i314a750644bd41a780767b7bfaa1efe7_I20200331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTYtNi0xLTEtMA_b003cba9-2158-4a49-86d6-803489065086"
      unitRef="usd">23072239</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="idfedae5cdef0414dae7a87fb4de24975_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV80Ni9mcmFnOjgxN2I4NDdiMThmZTRmODdhZTg3OTk5MDk2ZWI5ZWVmL3RhYmxlOjYxYjM4MmMxYWMyYzRlNTc5NjE4N2M4NDkzMmUxM2IyL3RhYmxlcmFuZ2U6NjFiMzgyYzFhYzJjNGU1Nzk2MTg3Yzg0OTMyZTEzYjJfMTYtOC0xLTEtMA_315c6af0-1eea-496d-9ac5-7456f28fec19"
      unitRef="usd">24148136</us-gaap:NoncurrentAssets>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="idfc38ed749fa437983854fc0ce82a52f_D20200101-20200331"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV83MC9mcmFnOjE5NmEyYjRiODkzOTQ5ZTJhNzU1YjQ1ZGU3YzkwOGVjL3RleHRyZWdpb246MTk2YTJiNGI4OTM5NDllMmE3NTViNDVkZTdjOTA4ZWNfMjE4_b503a548-7203-448d-b9cd-1231e6bb00c0">SUBSEQUENT EVENTS&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;On April 21, 2020, the Company secured funding pursuant to the Paycheck Protection Program of the Coronavirus Aid, Relief, and Economic Security Act, or CARES Act (the &#x201c;PPP Loan&#x201d;). Under the PPP Loan the Company received $1,074,030, which bear interest at a rate of 1.00% per annum. The PPP Loan was made through the Bank of America (the &#x201c;Bank&#x201d;). The PPP Loan is evidenced by a note dated April 16, 2020, which contains customary events of default relating to, among other things, payment defaults and breaches of representations and warranties. We may prepay the PPP Loan at any time prior to maturity with no prepayment penalties.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;On April 23, 2020, the Small Business Administration, in consultation with the Department of Treasury, issued new guidance that creates uncertainty regarding the qualification requirements for PPP loans, especially for public companies. In light of the new guidance, executive management and the Board determined it appropriate to repay the principal and interest on the PPP Loan.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;In accordance with ASC 855 "Subsequent Events," Company Management reviewed all material events through the date this report was issued and there were no other subsequent events to report.&lt;/span&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="iafda40d586f94e10a4f36c6cb0b5d271_D20200421-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV83MC9mcmFnOjE5NmEyYjRiODkzOTQ5ZTJhNzU1YjQ1ZGU3YzkwOGVjL3RleHRyZWdpb246MTk2YTJiNGI4OTM5NDllMmE3NTViNDVkZTdjOTA4ZWNfMzg0ODI5MDcwMzczNQ_2c387a6e-e75a-40e0-aeb9-04ee6a16d7d5"
      unitRef="usd">1074030</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="i05b08e12f27a461c85068d143d29d868_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmIwM2Q0MjQ2ODRkMTQzNGRhNTZhYzA3YjYzMTFlNGVhL3NlYzpiMDNkNDI0Njg0ZDE0MzRkYTU2YWMwN2I2MzExZTRlYV83MC9mcmFnOjE5NmEyYjRiODkzOTQ5ZTJhNzU1YjQ1ZGU3YzkwOGVjL3RleHRyZWdpb246MTk2YTJiNGI4OTM5NDllMmE3NTViNDVkZTdjOTA4ZWNfMzg0ODI5MDcwMzc0Nw_1d73fbd3-8095-47a1-8e0f-55d4b6a553a3"
      unitRef="number">0.0100</us-gaap:DebtInstrumentInterestRateStatedPercentage>
</xbrl>
