<SEC-DOCUMENT>0001493152-22-013020.txt : 20220512
<SEC-HEADER>0001493152-22-013020.hdr.sgml : 20220512
<ACCEPTANCE-DATETIME>20220512160549
ACCESSION NUMBER:		0001493152-22-013020
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		67
CONFORMED PERIOD OF REPORT:	20220331
FILED AS OF DATE:		20220512
DATE AS OF CHANGE:		20220512

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			Co-Diagnostics, Inc.
		CENTRAL INDEX KEY:			0001692415
		STANDARD INDUSTRIAL CLASSIFICATION:	SURGICAL & MEDICAL INSTRUMENTS & APPARATUS [3841]
		IRS NUMBER:				462609396
		STATE OF INCORPORATION:			UT
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-38148
		FILM NUMBER:		22917735

	BUSINESS ADDRESS:	
		STREET 1:		4049 SOUTH HIGHLAND DRIVE
		CITY:			SALT LAKE CITY
		STATE:			UT
		ZIP:			84124
		BUSINESS PHONE:		8012789769

	MAIL ADDRESS:	
		STREET 1:		4049 SOUTH HIGHLAND DRIVE
		CITY:			SALT LAKE CITY
		STATE:			UT
		ZIP:			84124
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>form10-q.htm
<TEXT>
<XBRL>
<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:us-roles="http://fasb.org/us-roles/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:country="http://xbrl.sec.gov/country/2022" xmlns:srt="http://fasb.org/srt/2022" xmlns:CODX="http://codiagnostics.com/20220331">
<head>
     <title></title>
<meta http-equiv="Content-Type" content="text/html" />
</head>
<!-- Field: Set; Name: xdx; ID: xdx_02B_US%2DGAAP%2D2022 -->
<!-- Field: Set; Name: xdx; ID: xdx_03A_CODX_codiagnostics.com_20220331 -->
<!-- Field: Set; Name: xdx; ID: xdx_048_20220101_20220331 -->
<!-- Field: Set; Name: xdx; ID: xdx_05D_edei%2D%2DEntityCentralIndexKey_0001692415 -->
<!-- Field: Set; Name: xdx; ID: xdx_059_edei%2D%2DAmendmentFlag_false -->
<!-- Field: Set; Name: xdx; ID: xdx_05F_edei%2D%2DDocumentFiscalPeriodFocus_Q1 -->
<!-- Field: Set; Name: xdx; ID: xdx_051_edei%2D%2DCurrentFiscalYearEndDate_%2D%2DLS0xMi0zMQ== -->
<!-- Field: Set; Name: xdx; ID: xdx_070_XDX_form10%2Dq.xdx -->
<!-- Field: Set; Name: xdx; ID: xdx_06B_USD_1_iso4217%2D%2DUSD -->
<!-- Field: Set; Name: xdx; ID: xdx_062_Shares_2_xbrli%2D%2Dshares -->
<!-- Field: Set; Name: xdx; ID: xdx_06D_USDPShares_3_iso4217%2D%2DUSD_xbrli%2D%2Dshares -->
<!-- Field: Set; Name: xdx; ID: xdx_069_Pure_4_xbrli%2D%2Dpure -->
<!-- Field: Set; Name: xdx; ID: xdx_067_Sqft_0_utr%2D%2Dacre -->
<body style="font: 10pt Times New Roman, Times, Serif">
<div style="display: none">
<ix:header>
 <ix:hidden>
  <ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityCentralIndexKey">0001692415</ix:nonNumeric>
  <ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleanfalse" name="dei:AmendmentFlag">false</ix:nonNumeric>
  <ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:DocumentFiscalPeriodFocus">Q1</ix:nonNumeric>
  <ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:CurrentFiscalYearEndDate">--12-31</ix:nonNumeric>
  <ix:nonFraction name="us-gaap:MarketableSecuritiesCurrent" contextRef="AsOf2022-03-31" id="xdx2ixbrl0053" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2021-12-31" id="xdx2ixbrl0075" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2021-12-31" id="xdx2ixbrl0105" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="AsOf2022-03-31" id="xdx2ixbrl0113" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2021-12-31" id="xdx2ixbrl0129" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:CommitmentsAndContingencies" contextRef="AsOf2022-03-31" id="xdx2ixbrl0140" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:CommitmentsAndContingencies" contextRef="AsOf2021-12-31" id="xdx2ixbrl0141" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:PreferredStockValue" contextRef="AsOf2022-03-31" id="xdx2ixbrl0146" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:PreferredStockValue" contextRef="AsOf2021-12-31" id="xdx2ixbrl0147" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0233" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:GainOnRemeasurementOfAcquisitionContingencies" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0236" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:GainOnRemeasurementOfAcquisitionContingencies" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0287" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:NoncashLeaseExpense" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0290" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0296" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:PaymentsToAcquireInterestInJointVentures" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0337" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:InterestPaidNet" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0364" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:InterestPaidNet" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0365" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:IncomeTaxesPaidNet" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0367" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:IncomeTaxesPaidNet" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0368" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0374" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" contextRef="From2021-01-012021-03-31" id="xdx2ixbrl0377" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0379" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0387" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember" id="xdx2ixbrl0390" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueOther" contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0395" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0403" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember" id="xdx2ixbrl0406" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0411" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" id="xdx2ixbrl0412" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember" id="xdx2ixbrl0413" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0417" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2020-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0425" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0433" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember" id="xdx2ixbrl0436" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0441" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember" id="xdx2ixbrl0444" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0449" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember" id="xdx2ixbrl0450" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember" id="xdx2ixbrl0451" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember" id="xdx2ixbrl0455" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonNumeric contextRef="From2022-01-012022-03-31_srt_MinimumMember" id="xdx2ixbrl0496" name="us-gaap:PropertyPlantAndEquipmentUsefulLife">P3Y</ix:nonNumeric>
  <ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember" id="xdx2ixbrl0563" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember" id="xdx2ixbrl0585" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember" id="xdx2ixbrl0593" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2021-12-31" id="xdx2ixbrl0599" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0608" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0609" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0613" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0614" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0618" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0619" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:MarketableSecurities" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0623" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:MarketableSecurities" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" id="xdx2ixbrl0625" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:AssetsFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0628" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:AssetsFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" id="xdx2ixbrl0630" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0633" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0634" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0638" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0639" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member" id="xdx2ixbrl0643" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" id="xdx2ixbrl0644" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ContractWithCustomerLiability" contextRef="AsOf2022-03-31" id="xdx2ixbrl0704" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0752" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0754" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0756" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0758" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0760" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0762" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0764" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0766" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0768" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" id="xdx2ixbrl0808" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" id="xdx2ixbrl0810" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" id="xdx2ixbrl0816" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" id="xdx2ixbrl0818" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0838" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0840" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0842" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0844" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0846" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0848" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0850" unitRef="Shares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0852" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" id="xdx2ixbrl0854" unitRef="USDPShares" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2022-01-012022-03-31_us-gaap_StockCompensationPlanMember" id="xdx2ixbrl0892" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" contextRef="AsOf2022-03-31" id="xdx2ixbrl0936" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" contextRef="AsOf2022-03-31" id="xdx2ixbrl0938" unitRef="USD" xs:nil="true"></ix:nonFraction>
  <ix:nonFraction name="CODX:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" contextRef="AsOf2022-03-31" id="xdx2ixbrl0940" unitRef="USD" xs:nil="true"></ix:nonFraction>
  </ix:hidden>
 <ix:references>
  <link:schemaRef xlink:href="codx-20220331.xsd" xlink:type="simple" />
  </ix:references>
 <ix:resources>
    <xbrli:context id="From2022-01-01to2022-03-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-05-12">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-05-12</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2020-12-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2020-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2020-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2020-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2020-12-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2020-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2020-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2020-12-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2020-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31_us-gaap_CommonStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31_us-gaap_AdditionalPaidInCapitalMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31_us-gaap_RetainedEarningsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_srt_MinimumMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_srt_MaximumMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:ThreeCustomersTogetherMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:ThreeCustomersTogetherMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:TwoCustomersTogetherMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-12-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:TwoCustomersTogetherMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-12-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-01-02</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">CODX:AdvancedConceptionsIncAndIdahoMolecularIncMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-12-30</xbrli:startDate>
        <xbrli:endDate>2021-12-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">CODX:AdvancedConceptionsIncAndIdahoMolecularIncMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_InProcessResearchAndDevelopmentMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_NoncompeteAgreementsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-12-31_us-gaap_InProcessResearchAndDevelopmentMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-12-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-12-31_us-gaap_NoncompeteAgreementsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-12-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_MeasurementInputSharePriceMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputSharePriceMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_MeasurementInputSharePriceMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputSharePriceMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_custom_MeasurementInputStrikePriceMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">CODX:MeasurementInputStrikePriceMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_custom_MeasurementInputStrikePriceMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">CODX:MeasurementInputStrikePriceMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_MeasurementInputPriceVolatilityMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputPriceVolatilityMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_MeasurementInputPriceVolatilityMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputPriceVolatilityMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_MeasurementInputRiskFreeInterestRateMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputRiskFreeInterestRateMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_MeasurementInputRiskFreeInterestRateMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputRiskFreeInterestRateMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_srt_AmericasMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_srt_AmericasMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_RestOfWorldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_custom_RestOfWorldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_WarrantMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">CODX:TwoThousandFifteenLongTermIncentivePlanMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_StockOptionsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_custom_StockOptionsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_custom_StockOptionsMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_us-gaap_WarrantMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:ThirdPartiesMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:ThirdPartiesMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-12-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_EmployeeStockOptionMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_EmployeeStockOptionMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_RestrictedStockUnitsRSUMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2022-01-012022-03-31_us-gaap_StockCompensationPlanMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2022-01-01</xbrli:startDate>
        <xbrli:endDate>2022-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2021-01-012021-03-31_us-gaap_StockCompensationPlanMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2021-01-01</xbrli:startDate>
        <xbrli:endDate>2021-03-31</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2017-01-30</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="From2017-01-012017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:startDate>2017-01-01</xbrli:startDate>
        <xbrli:endDate>2017-01-30</xbrli:endDate>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2022-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2022-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:context id="AsOf2021-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
      <xbrli:entity>
        <xbrli:identifier scheme="http://www.sec.gov/CIK">0001692415</xbrli:identifier>
        <xbrli:segment>
          <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
          <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
        </xbrli:segment>
      </xbrli:entity>
      <xbrli:period>
        <xbrli:instant>2021-03-31</xbrli:instant>
      </xbrli:period>
    </xbrli:context>
    <xbrli:unit id="USD">
      <xbrli:measure>iso4217:USD</xbrli:measure>
    </xbrli:unit>
    <xbrli:unit id="Shares">
      <xbrli:measure>xbrli:shares</xbrli:measure>
    </xbrli:unit>
    <xbrli:unit id="USDPShares">
      <xbrli:divide>
        <xbrli:unitNumerator>
          <xbrli:measure>iso4217:USD</xbrli:measure>
        </xbrli:unitNumerator>
        <xbrli:unitDenominator>
          <xbrli:measure>xbrli:shares</xbrli:measure>
        </xbrli:unitDenominator>
      </xbrli:divide>
    </xbrli:unit>
    <xbrli:unit id="Pure">
      <xbrli:measure>xbrli:pure</xbrli:measure>
    </xbrli:unit>
    <xbrli:unit id="Sqft">
      <xbrli:measure>utr:acre</xbrli:measure>
    </xbrli:unit>
  <ix:relationship fromRefs="Fact000559" toRefs="Footnote000602"></ix:relationship>
  <ix:relationship fromRefs="Fact000567" toRefs="Footnote000602"></ix:relationship>
  <ix:relationship fromRefs="Fact000581" toRefs="Footnote000602"></ix:relationship>
  <ix:relationship fromRefs="Fact000589" toRefs="Footnote000602"></ix:relationship>
  </ix:resources>
 </ix:header>
</div>


<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"></span></p>

<!-- Field: Rule-Page --><div style="width: 100%"><div style="border-top: Black 4pt solid; font-size: 1pt; border-bottom: Black 1.5pt solid">&#160;</div></div><!-- Field: /Rule-Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"></span>&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 18pt"><b>UNITED
STATES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 18pt"><b>SECURITIES
AND EXCHANGE COMMISSION</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 12pt"><b>Washington,
DC 20549</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 18pt"><b>FORM
<span id="xdx_905_edei--DocumentType_c20220101__20220331_zkLIK3IIHzoa"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:DocumentType">10-Q</ix:nonNumeric></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_90B_edei--DocumentQuarterlyReport_c20220101__20220331_zE5q13lsJzvc"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleantrue" name="dei:DocumentQuarterlyReport">&#9746;</ix:nonNumeric></span>
QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the quarterly period ended <b><span id="xdx_902_edei--DocumentPeriodEndDate_c20220101__20220331_ztELBFpIrfJl"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:datemonthdayyearen" name="dei:DocumentPeriodEndDate">March 31, <span id="xdx_90C_edei--DocumentFiscalYearFocus_c20220101__20220331_zFtbQu42YWGb" title="Document Fiscal Year Focus"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:DocumentFiscalYearFocus">2022</ix:nonNumeric></span></ix:nonNumeric></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">OR</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_904_edei--DocumentTransitionReport_c20220101__20220331_zOEODhynEEGg"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleanfalse" name="dei:DocumentTransitionReport">&#9744;</ix:nonNumeric></span>
TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the transition period from __________ to __________</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Commission
File No. <b><span id="xdx_903_edei--EntityFileNumber_c20220101__20220331_zGfdLgxTs27h"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityFileNumber">001-38148</ix:nonNumeric></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 18pt"><b><span id="xdx_904_edei--EntityRegistrantName_c20220101__20220331_z5Rsy7qqr9Of"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityRegistrantName">CO-DIAGNOSTICS,
INC.</ix:nonNumeric></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Exact
Name of Registrant as Specified in Its Charter)</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 49%; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="xdx_909_edei--EntityIncorporationStateCountryCode_c20220101__20220331_zHDKus6p7ni2"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:stateprovnameen" name="dei:EntityIncorporationStateCountryCode">Utah</ix:nonNumeric></span></b></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 2%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 49%; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="xdx_90B_edei--EntityTaxIdentificationNumber_c20220101__20220331_z8IJKIkCIpgg"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityTaxIdentificationNumber">46-2609396</ix:nonNumeric></span></b></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(State
    or other jurisdiction of<br />
    incorporation or organization)</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(I.R.S.
    Employer<br />
    Identification Number)</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span style="text-decoration: underline"><span id="xdx_906_edei--EntityAddressAddressLine1_c20220101__20220331_zHCqjrbOhXV5"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityAddressAddressLine1">2401
S. Foothill Drive</ix:nonNumeric></span>, <span id="xdx_902_edei--EntityAddressAddressLine2_c20220101__20220331_z9PR0C7D0zJ"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityAddressAddressLine2">Suite D</ix:nonNumeric></span>, <span id="xdx_90E_edei--EntityAddressCityOrTown_c20220101__20220331_zesAImFWcjCg"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityAddressCityOrTown">Salt Lake City</ix:nonNumeric></span>, <span id="xdx_903_edei--EntityAddressStateOrProvince_c20220101__20220331_zY3CTpVie4Z2"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:stateprovnameen" name="dei:EntityAddressStateOrProvince">Utah</ix:nonNumeric></span> <span id="xdx_900_edei--EntityAddressPostalZipCode_c20220101__20220331_zKVCSf9uyNDl"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityAddressPostalZipCode">84109</ix:nonNumeric></span></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Address
of principal executive offices and zip code)</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span style="text-decoration: underline"><span id="xdx_906_edei--CityAreaCode_c20220101__20220331_z5OlW84G7ggl"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:CityAreaCode">(801)</ix:nonNumeric></span>
<span id="xdx_90C_edei--LocalPhoneNumber_c20220101__20220331_z1gSoMAVRoc2"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:LocalPhoneNumber">438-1036</ix:nonNumeric></span></span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(Registrant&#8217;s
telephone number, including area code)</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Securities
registered pursuant to Section 12(b) of the Act:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif">
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; width: 30%; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Title
    of each class</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; width: 2%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; width: 28%; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Trading
    Symbol(s)</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; width: 2%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; width: 38%; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Name
    of each exchange on which registered</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif">
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_903_edei--Security12bTitle_c20220101__20220331_zCo2EnZUI13c"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:Security12bTitle">Common
    Stock</ix:nonNumeric></span></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: top"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_90C_edei--TradingSymbol_c20220101__20220331_zMt00oQh1Yvj"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:TradingSymbol">CODX</ix:nonNumeric></span></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: top"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; vertical-align: bottom; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    <span id="xdx_907_edei--SecurityExchangeName_c20220101__20220331_zmg6EuJwhbya"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:exchnameen" name="dei:SecurityExchangeName">Nasdaq</ix:nonNumeric></span> Capital Market</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Indicate
by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Exchange Act of 1934
during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject
to such filing requirements for the past 90 days. <span id="xdx_90B_edei--EntityCurrentReportingStatus_c20220101__20220331_zfmkMztQCyc2"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityCurrentReportingStatus">Yes</ix:nonNumeric></span> &#9746; No &#9744;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Indicate
by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted and posted pursuant
to Rule 405 of Regulation S-T (&#167; 232.405 of this chapter) during the preceding 12 months (or such shorter period that the registrant
was required to submit and post such files). <span id="xdx_903_edei--EntityInteractiveDataCurrent_c20220101__20220331_zdb6WmAxDmkk"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" name="dei:EntityInteractiveDataCurrent">Yes</ix:nonNumeric></span> &#9746; No &#9744;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Indicate
by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting
company, or an emerging growth company. See definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller
reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 3%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 37%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Large
    accelerated filer</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 6%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9744;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 48%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Accelerated
    filer</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 6%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9744;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_907_edei--EntityFilerCategory_c20220101__20220331_zeroUBT0B708" title="Entity Filer Category"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:entityfilercategoryen" name="dei:EntityFilerCategory">Non-accelerated
    filer</ix:nonNumeric></span></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9744;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Smaller
    reporting company</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_903_edei--EntitySmallBusiness_c20220101__20220331_zDTKFK7t3IAk"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleantrue" name="dei:EntitySmallBusiness">&#9746;</ix:nonNumeric></span></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Emerging
    growth company</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_907_edei--EntityEmergingGrowthCompany_c20220101__20220331_zI7iThUoE8yj"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleantrue" name="dei:EntityEmergingGrowthCompany">&#9746;</ix:nonNumeric></span></span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">If
an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying
with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. <span id="xdx_905_edei--EntityExTransitionPeriod_c20220101__20220331_z8KDUi8Ta824"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleanfalse" name="dei:EntityExTransitionPeriod">&#9744;</ix:nonNumeric></span></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Indicate
by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). Yes &#9744; <span id="xdx_903_edei--EntityShellCompany_c20220101__20220331_zcAd9e8P9bfa"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt:booleanfalse" name="dei:EntityShellCompany">No</ix:nonNumeric></span> &#9746;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of May 12, 2022, there were <span id="xdx_902_edei--EntityCommonStockSharesOutstanding_iI_pid_c20220512_zOnbjUpozyQ1" title="Entity Common Stock, Shares Outstanding"><ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" contextRef="AsOf2022-05-12" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,987,736</ix:nonFraction></span> shares of common stock, par value $0.001 per share, outstanding.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"></span></p>

<!-- Field: Rule-Page --><div style="width: 100%"><div style="border-top: Black 1.5pt solid; font-size: 1pt; border-bottom: Black 4pt solid">&#160;</div></div><!-- Field: /Rule-Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 1 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="width: 100%">&#160;</td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CO-DIAGNOSTICS,
INC.</b> <b>AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>TABLE
OF CONTENTS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td colspan="2" style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_001">PART I FINANCIAL INFORMATION:</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 0.65in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center; width: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    1.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_002">Financial Statements (unaudited):</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">3</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_003">Consolidated Balance Sheets</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">3</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_004">Consolidated Statements of Operations</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">4</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_005">Consolidated Statements of Cash Flows</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">5</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_006">Consolidated Statements of Stockholders&#8217; Equity</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">6</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_007">Notes to Consolidated Financial Statements</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">7</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    2.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_008">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">16</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    3.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_009">Quantitative and Qualitative Disclosures About Market Risk</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">20</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    4.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_010">Controls and Procedures</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">20</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td colspan="2" style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_011">PART II OTHER INFORMATION:</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    1.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_012">Legal Proceedings</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    1A.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_013">Risk Factors</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    2.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_014">Unregistered Sales of Equity Securities and Use of Proceeds</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    3.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_015">Defaults Upon Senior Securities</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    4.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_016">Mine Safety Disclosures</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    5.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_017">Other Information</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">21</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Item
    6.</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_018">Exhibits</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">22</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: White">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top; background-color: rgb(204,238,255)">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="#a_019">Signatures</a></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">23</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 2; Options: NewSection; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->2<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_001"></span>PART
I. FINANCIAL INFORMATION</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_002"></span>Item
1. Financial Statements</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_003"></span>CO
&#8211; DIAGNOSTICS, INC. AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CONSOLIDATED
BALANCE SHEETS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>(Unaudited)</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" id="xdx_309_111_zckZWlt5Dnle" summary="xdx: Statement - Consolidated Balance Sheets (Unaudited)" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49C_20220331_zTgyOIwqZvG5" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_493_20211231_zKsHzIxsJErk" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--AssetsAbstract_iB" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold">Assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--AssetsCurrentAbstract_i01B" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Current assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--CashAndCashEquivalentsAtCarryingValue_i02I_pp0p0_maACzK6F_zPUV0KYQe0w3" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 60%; text-align: left">Cash and cash equivalents</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">97,421,739</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">88,607,234</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--MarketableSecuritiesCurrent_i02I_pp0p0_maACzK6F_zQhKHgkcG9xd" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Marketable investment securities</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0053">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:MarketableSecuritiesCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AccountsReceivableNetCurrent_i02I_pp0p0_maACzK6F_zRTUrUybcf98" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Accounts receivable, net</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">21,662,403</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">20,839,182</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--InventoryNet_i02I_pp0p0_maACzK6F_zumwRta5nrt4" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Inventory</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:InventoryNet" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">4,901,057</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:InventoryNet" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,004,169</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--PrepaidExpenseAndOtherAssetsCurrent_i02I_pp0p0_maACzK6F_zOSFTKEKw6N9" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Prepaid expenses and other current assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,278,598</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,338,444</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--NotesAndLoansReceivableNetCurrent_i02I_pp0p0_maACzK6F_zJDjNMLwjJ65" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Note receivable</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NotesAndLoansReceivableNetCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">75,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NotesAndLoansReceivableNetCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">75,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--AssetsCurrent_i02TI_pp0p0_mtACzK6F_maAz4l2_z7Qz8HJNwkv5" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 20pt; text-align: left">Total current assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AssetsCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">125,338,797</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AssetsCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">115,119,295</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--PropertyPlantAndEquipmentNet_i01I_pp0p0_maAz4l2_zriNNz8CheT3" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Property and equipment, net</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,252,853</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,933,216</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--OperatingLeaseRightOfUseAsset_i01I_pp0p0_maAz4l2_zcWquPVfOvvg" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Operating lease right-of-use asset</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">604,837</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0075">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--Goodwill_i01I_pp0p0_maAz4l2_z5ylOwKvYGNc" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Goodwill</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:Goodwill" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">14,808,411</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:Goodwill" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">14,706,818</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--IntangibleAssetsNetExcludingGoodwill_i01I_pp0p0_maAz4l2_z9j79QBcKO57" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Intangible assets, net</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">27,088,333</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">27,195,000</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40D_eus-gaap--RealEstateInvestmentsJointVentures_i01I_pp0p0_maAz4l2_zQX3y6gozrw3" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Investment in joint venture</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:RealEstateInvestmentsJointVentures" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">983,614</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:RealEstateInvestmentsJointVentures" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,004,953</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40D_eus-gaap--AccountsReceivableNetNoncurrent_i01I_pp0p0_maAz4l2_zbJmFmIQM6Ra" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Note receivable</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:AccountsReceivableNetNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">75,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:AccountsReceivableNetNoncurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">75,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--Assets_i01TI_pp0p0_mtAz4l2_zi3hfssgtJj8" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; padding-left: 20pt; text-align: left">Total assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:Assets" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">171,151,845</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:Assets" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">160,034,282</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--LiabilitiesAndStockholdersEquityAbstract_iB" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold; text-align: left">Liabilities and stockholders&#8217; equity</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--LiabilitiesCurrentAbstract_i01B" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Current liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AccountsPayableCurrent_i02I_pp0p0_maLCzonT_zreuUN7WkQR8" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Accounts payable</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,215,049</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">607,506</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--AccruedLiabilitiesCurrent_i02I_pp0p0_maLCzonT_zX1mUsM8lhBj" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Accrued expenses, current</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,613,218</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">3,859,652</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--OperatingLeaseLiabilityCurrent_i02I_pp0p0_maLCzonT_zjtaOmdzSWT4" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Operating lease liability, current</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">283,299</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0105">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AssetAcquisitionContingentConsiderationLiabilityCurrent_i02I_pp0p0_maLCzonT_zBfCqcSNPTw6" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Contingent consideration liabilities, current</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">4,065,537</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">5,767,304</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--TaxesPayableCurrent_i02I_pp0p0_maLCzonT_z57TN2RQz0C1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Income taxes payable</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">4,843,592</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,213,088</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--ContractWithCustomerLiabilityCurrent_i02I_pp0p0_maLCzonT_zFHshLXoZggg" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Deferred revenue</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0113">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">150,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--LiabilitiesCurrent_i02TI_pp0p0_mtLCzonT_maLzKPf_maLzatn_z3UkJVqgUhci" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 20pt; text-align: left">Total current liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">13,020,695</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">12,597,550</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--LiabilitiesNoncurrentAbstract_i01B" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Long-term liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_ecustom--TaxesPayableNoncurrent_i02I_pp0p0_maLzKPf_maLNzqvX_zXWFVl17UKyi" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Income taxes payable</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:TaxesPayableNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,284,745</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:TaxesPayableNoncurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,067,853</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--DeferredIncomeTaxLiabilitiesNet_i02I_pp0p0_maLzKPf_maLNzqvX_zyO3PmYuKtx7" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Deferred tax liability</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:DeferredIncomeTaxLiabilitiesNet" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">5,868,728</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:DeferredIncomeTaxLiabilitiesNet" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">7,228,444</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--OperatingLeaseLiabilityNoncurrent_i02I_pp0p0_maLzKPf_maLNzqvX_z0MVRakm90tk" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Operating lease liability</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">275,672</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0129">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--AssetAcquisitionContingentConsiderationLiabilityNoncurrent_i02I_pp0p0_maLzKPf_maLNzqvX_zSEN6ro9KXo6" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration liabilities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,987,214</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">4,665,337</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesNoncurrent_i02TI_pp0p0_mtLNzqvX_maLzatn_zsVrm053fzSj" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Total long-term liabilities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,416,359</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">12,961,634</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--Liabilities_i01TI_pp0p0_mtLzatn_maLASEz4y6_zFLx4LVRgTE" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Total liabilities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:Liabilities" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">23,437,054</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:Liabilities" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">25,559,184</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--CommitmentsAndContingencies_i01I_pp0p0_maLASEz4y6_zo6hL6CKYCpl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold; text-align: left">Commitments and contingencies (Note 12)</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0140">&#160;</span></td><td style="text-align: right"><span style="display: none; font-family: Times New Roman, Times, Serif">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0141">&#160;</span></td><td style="text-align: right"><span style="display: none; font-family: Times New Roman, Times, Serif">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--StockholdersEquityAbstract_i01B" style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold; text-align: left">Stockholders&#8217; equity</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--PreferredStockValue_i02I_pp0p0_maSEzyIZ_zHfIy4Vv9tni" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Convertible preferred stock, $<span id="xdx_90A_eus-gaap--PreferredStockParOrStatedValuePerShare_iI_pid_c20220331_ztkAjKfFVDye" title="Convertible preferred stock, par value"><span id="xdx_901_eus-gaap--PreferredStockParOrStatedValuePerShare_iI_pid_c20211231_zKdAQu28GbGh" title="Convertible preferred stock, par value"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.001</ix:nonFraction></ix:nonFraction></span></span>
    par value; <span id="xdx_903_eus-gaap--PreferredStockSharesAuthorized_iI_pid_c20220331_zyPa3MGx9zLa" title="Convertible preferred stock , shares authorized"><span id="xdx_90E_eus-gaap--PreferredStockSharesAuthorized_iI_pid_c20211231_zqtZv6jvHk3a" title="Convertible preferred stock , shares authorized"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">5,000,000</ix:nonFraction></ix:nonFraction></span></span>
    shares authorized; <span id="xdx_905_eus-gaap--PreferredStockSharesIssued_iI_pid_c20220331_zsyfUWDGeeug" title="Convertible preferred stock, shares issued"><span id="xdx_904_eus-gaap--PreferredStockSharesOutstanding_iI_pid_c20220331_zAXNgJUjPD9d" title="Convertible preferred stock, shares outstanding"><span id="xdx_90D_eus-gaap--PreferredStockSharesIssued_iI_pid_c20211231_zWwXlx5D45Pg" title="Convertible preferred stock, shares issued"><span id="xdx_901_eus-gaap--PreferredStockSharesOutstanding_iI_pid_c20211231_zoHDRlz65NDg" title="Convertible preferred stock, shares outstanding"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">0</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></span></span></span></span>
    shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0146">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0147">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--CommonStockValue_i02I_pp0p0_maSEzyIZ_z6TWp9BqJzci" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Common stock, $<span id="xdx_904_eus-gaap--CommonStockParOrStatedValuePerShare_iI_pid_c20220331_zMA0Qr8RHFd6" title="Common stock, par value"><span id="xdx_90C_eus-gaap--CommonStockParOrStatedValuePerShare_iI_pid_c20211231_zQio6qeGbj5j" title="Common stock, par value"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.001</ix:nonFraction></ix:nonFraction></span></span> par value; <span id="xdx_90D_eus-gaap--CommonStockSharesAuthorized_iI_pid_c20220331_zRh9Qupt5RPf" title="Common stock, shares authorized"><span id="xdx_903_eus-gaap--CommonStockSharesAuthorized_iI_pid_c20211231_z8vh15mq32vc" title="Common stock, shares authorized"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">100,000,000</ix:nonFraction></ix:nonFraction></span></span> shares authorized; <span id="xdx_905_eus-gaap--CommonStockSharesIssued_iI_pid_c20220331_zRmxfhybbRI" title="Common stock, shares issued"><span id="xdx_90B_eus-gaap--CommonStockSharesOutstanding_iI_pid_c20220331_zGtNJaYvcOp3" title="Common stock, shares outstanding"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,984,068</ix:nonFraction></ix:nonFraction></span></span> and <span id="xdx_90B_eus-gaap--CommonStockSharesIssued_iI_pid_c20211231_zcQLjNq4Wftl" title="Common stock, shares issued"><span id="xdx_901_eus-gaap--CommonStockSharesOutstanding_iI_pid_c20211231_zlDg8AWy31r8" title="Common stock, shares outstanding"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,819,862</ix:nonFraction></ix:nonFraction></span></span> shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:CommonStockValue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">33,984</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:CommonStockValue" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">33,820</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--AdditionalPaidInCapital_i02I_pp0p0_maSEzyIZ_zyriILSCWzsg" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Additional paid-in capital</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">81,796,933</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AdditionalPaidInCapital" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">80,271,999</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--RetainedEarningsAccumulatedDeficit_i02I_pp0p0_maSEzyIZ_zk7Han96sqH2" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Accumulated earnings</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">65,883,874</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">54,169,279</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--StockholdersEquity_i02TI_pp0p0_mtSEzyIZ_maLASEz4y6_zW4I2UKkyUOl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Total stockholders&#8217; equity</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">147,714,791</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">134,475,098</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--LiabilitiesAndStockholdersEquity_i01TI_pp0p0_mtLASEz4y6_zkAPZuvmXKk3" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; padding-left: 20pt; text-align: left">Total liabilities and stockholders&#8217; equity</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">171,151,845</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">160,034,282</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">See
accompanying notes to unaudited consolidated financial statements</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 3; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_004"></span>CO
&#8211; DIAGNOSTICS, INC. AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CONSOLIDATED
STATEMENTS OF OPERATIONS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>(Unaudited)</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" id="xdx_30A_113_zfzxb2yoetUk" summary="xdx: Statement - Consolidated Statements of Operations (Unaudited)" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="display: none; padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49D_20220101__20220331_zG7kc41CVan6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20210101__20210331_zCf2l2nSH50c" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--RevenueFromContractWithCustomerExcludingAssessedTax_maGPzoIw_zvqPeJYx0KP2" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Revenue</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">22,699,044</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">20,024,769</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--CostOfRevenue_msGPzoIw_zCPDpLaWD17c" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Cost of revenue</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:CostOfRevenue" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,281,951</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:CostOfRevenue" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,272,565</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--GrossProfit_iT_pp0p0_mtGPzoIw_maOILzVr6_zLBk4mjptpYg" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Gross profit</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:GrossProfit" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">19,417,093</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:GrossProfit" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">16,752,204</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--OperatingExpensesAbstract_iB" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Operating expenses</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--SellingAndMarketingExpense_i01_pp0p0_maOEzo77_ztKmCnDQgVaj" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Sales and marketing</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,652,148</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,197,546</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--GeneralAndAdministrativeExpense_i01_pp0p0_maOEzo77_zncUtD8xyAq" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">General and administrative</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,922,195</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,935,689</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--ResearchAndDevelopmentExpense_i01_pp0p0_maOEzo77_z2Teof9Dcx0a" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Research and development</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">3,771,327</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">2,217,063</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--DepreciationDepletionAndAmortization_i01_pp0p0_maOEzo77_z6ACwX4L4Jfi" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Depreciation and amortization</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">247,264</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">67,005</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--OperatingExpenses_i01T_pp0p0_mtOEzo77_msOILzVr6_z8dCIQih4AU8" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Total operating expenses</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingExpenses" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">9,592,934</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingExpenses" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">6,417,303</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingIncomeLoss_iT_pp0p0_mtOILzVr6_maILFCOzZE7_ztrDl23CQQNj" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 30pt; text-align: left">Income from operations</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">9,824,159</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,334,901</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--NonoperatingIncomeExpenseAbstract_iB" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Other income (expense)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--InterestIncomeOther_i01_pp0p0_maNIEz9lK_zkSiyDLclI6l" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Interest income</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:InterestIncomeOther" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">11,393</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:InterestIncomeOther" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">14,657</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--GainLossOnDispositionOfAssets1_i01_pp0p0_maNIEz9lK_z2VjjwrfnSO7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Loss on disposition of assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" sign="-" unitRef="USD">93,421</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0233">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_ecustom--GainOnRemeasurementOfAcquisitionContingencies_i01_pp0p0_maNIEz9lK_zbrtp8ehHxTl" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Gain on remeasurement of acquisition contingencies</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:GainOnRemeasurementOfAcquisitionContingencies" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">3,379,890</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0236">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_ecustom--LossOnEquityMethodInvestmentInJointVenture_i01_pp0p0_maNIEz9lK_zf5hgUTAQWcc" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">(Loss) on equity method investment in joint venture</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="CODX:LossOnEquityMethodInvestmentInJointVenture" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" sign="-" unitRef="USD">21,339</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="CODX:LossOnEquityMethodInvestmentInJointVenture" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" sign="-" unitRef="USD">464,943</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_40F_eus-gaap--NonoperatingIncomeExpense_i01T_pp0p0_mtNIEz9lK_maILFCOzZE7_z7A6vYaVbpj1" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Total other income (expense)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">3,276,523</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" sign="-" unitRef="USD">450,286</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_40B_eus-gaap--IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_iT_pp0p0_mtILFCOzZE7_maNILzI33_zQH5PaVxITS1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 0pt; text-align: left">Income before income taxes</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">13,100,682</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">9,884,615</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--IncomeTaxExpenseBenefit_msNILzI33_zFL3rrMQuXXc" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 0pt; text-align: left">Income tax provision</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,386,087</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,985,640</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--NetIncomeLoss_iT_pp0p0_mtNILzI33_zN8Sr5AFj1yg" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; padding-left: 0pt; text-align: left">Net income</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">11,714,595</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">7,898,975</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--EarningsPerShareBasicAbstract_iB" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 0pt">Earnings per common share:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--EarningsPerShareBasic_i01_pid_z3A0ptG8j9Z7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Basic</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.35</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.28</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--EarningsPerShareDiluted_i01_pid_z6i8Ihk5XJD8" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Diluted</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.34</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.26</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_iB" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Weighted average shares outstanding:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--WeightedAverageNumberOfSharesOutstandingBasic_i01_pid_zdL0xU0auMrh" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Basic</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,935,570</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">28,662,885</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_i01_pid_zbPveWFuq9Ob" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Diluted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">34,711,476</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">30,002,729</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">See
accompanying notes to unaudited consolidated financial statements</span></p>
<!-- Field: Split-Segment; Name: 001 -->
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 4; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_005"></span>CO
&#8211; DIAGNOSTICS, INC. AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CONSOLIDATED
STATEMENTS OF CASH FLOWS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>(Unaudited)</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<table cellpadding="0" cellspacing="0" id="xdx_302_112_zN4ADgOSMKhh" summary="xdx: Statement - Consolidated Statements of Cash Flows (Unaudited)" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_z9JIbbuTskZ2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49E_20210101__20210331_zVOQLamuDxG4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--NetCashProvidedByUsedInOperatingActivitiesAbstract_iB_ztUKa2uUqHg" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold; text-align: left">Cash flows from operating activities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--NetIncomeLoss_i01_maCzGLi_zo5NV1vAbhd" style="vertical-align: bottom; background-color: White">
    <td style="width: 60%; text-align: left">Net income</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,714,595</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,898,975</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_i01B_zieWffjRDb96" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Adjustments to reconcile net income to cash used in operating activities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--DepreciationDepletionAndAmortization_i02_maCzGLi_z9GILaHxAch4" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Depreciation and amortization</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">247,264</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:DepreciationDepletionAndAmortization" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">67,005</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--ShareBasedCompensation_i02_maCzGLi_zbxVcyVRC08g" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Stock-based compensation expense</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensation" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,375,097</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensation" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,513,012</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_ecustom--GainOnRemeasurementOfAcquisitionContingencies_i02N_di_msCzGLi_zNjIAXCqxGbk" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Change in fair value of acquisition contingencies</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="CODX:GainOnRemeasurementOfAcquisitionContingencies" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,379,890</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0287">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_ecustom--NoncashLeaseExpense_i02_maCzGLi_zWjxeIdPsfw7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Non-cash lease expense</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:NoncashLeaseExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">8,762</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0290">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--GainLossOnSaleOfInvestments_i02N_di_msCzGLi_zVwG9iEIObf1" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Loss from equity method investment</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:GainLossOnSaleOfInvestments" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">21,339</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:GainLossOnSaleOfInvestments" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">464,943</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--GainLossOnDispositionOfAssets1_i02N_di_msCzGLi_zDBcChJXqcd9" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Loss on disposition of assets</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:GainLossOnDispositionOfAssets1" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">93,421</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0296">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--DeferredIncomeTaxExpenseBenefit_i02_maCzGLi_zYO0SQcmyz7f" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Deferred income taxes</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">1,359,716</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">302,399</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--ProvisionForDoubtfulAccounts_i02_maCzGLi_zHCLMcwbZ606" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Bad debt expense</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">47,862</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">79,700</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--IncreaseDecreaseInOperatingCapitalAbstract_i02B_zsVSlF8qdJM4" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Changes in assets and liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--IncreaseDecreaseInAccountsReceivable_i03N_di_msCzGLi_zHnyS67EadHc" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Accounts receivable</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">871,083</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">59,994</ix:nonFraction></td><td style="text-align: left">)</td></tr>
  <tr id="xdx_407_eus-gaap--IncreaseDecreaseInPrepaidExpense_i03N_di_msCzGLi_zrxAOJ5cIYx3" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Prepaid expenses</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">1,042,932</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">114,473</ix:nonFraction></td><td style="text-align: left">)</td></tr>
  <tr id="xdx_409_eus-gaap--IncreaseDecreaseInInventories_i03N_di_msCzGLi_zIUlSz1IBm23" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Inventory</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,088,944</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">1,797,581</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--IncreaseDecreaseInContractWithCustomerLiability_i03_maCzGLi_zywIrBR6q5Lg" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Deferred revenue</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">150,000</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">146,516</ix:nonFraction></td><td style="text-align: left">)</td></tr>
  <tr id="xdx_40F_eus-gaap--IncreaseDecreaseInAccruedIncomeTaxesPayable_i03_maCzGLi_zrq0aiFpR6A2" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Income taxes payable</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,745,803</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,128,438</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_i03_maCzGLi_zdpWJzoUwQZ9" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Accounts payable, accrued expenses and other liabilities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">641,604</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">661,115</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_400_eus-gaap--NetCashProvidedByUsedInOperatingActivities_i01T_mtCzGLi_maCzKtm_ziPsGP0enWgf" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Net cash provided by operating activities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,805,838</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">12,269,955</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_eus-gaap--NetCashProvidedByUsedInInvestingActivitiesAbstract_iB_zG9LE12Ob1T1" style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold; text-align: left">Cash flows from investing activities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--PaymentsToAcquirePropertyPlantAndEquipment_i01N_di_msCzpWu_zLWwH786O9Wc" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Purchases of property and equipment</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">396,600</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">139,558</ix:nonFraction></td><td style="text-align: left">)</td></tr>
  <tr id="xdx_40B_eus-gaap--ProceedsFromSaleAndMaturityOfMarketableSecurities_i01_maCzpWu_zZ2J2gYgpHnk" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Proceeds from maturities of marketable investment securities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,032,802</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--PaymentsToAcquireInterestInJointVentures_i01N_di_msCzpWu_zcBbBujfyD3c" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; text-align: left">Investment in joint venture</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0337">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:PaymentsToAcquireInterestInJointVentures" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">500,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--NetCashProvidedByUsedInInvestingActivities_i01T_mtCzpWu_maCzKtm_zw0weMCi21g4" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Net cash provided by investing activities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">858,666</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,393,244</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--NetCashProvidedByUsedInFinancingActivitiesAbstract_iB_zHLxQaRg2OUj" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold; text-align: left">Cash flows from financing activities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_ecustom--ProceedsFromExerciseOfOptionsAndWarrants_i01_maCzoFo_zoZXO9sJd9Ib" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Proceeds from exercise of options and warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:ProceedsFromExerciseOfOptionsAndWarrants" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">150,001</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:ProceedsFromExerciseOfOptionsAndWarrants" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">148,981</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--NetCashProvidedByUsedInFinancingActivities_i01T_mtCzoFo_maCzKtm_zbwkd4c15FBc" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 20pt; text-align: left">Net cash provided by financing activities</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">150,001</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">148,981</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_iT_mtCzKtm_zZy85KgLE2ji" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Net increase in cash and cash equivalents</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">8,814,505</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,812,180</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_eus-gaap--CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_iS_zEzhWWbfZ0xc" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; text-align: left">Cash and cash equivalents at beginning of period</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">88,607,234</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" contextRef="AsOf2020-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">42,976,713</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_iE_zCwoH76I1kw" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Cash and cash equivalents at end of period</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">97,421,739</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" contextRef="AsOf2021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">57,788,893</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--SupplementalCashFlowInformationAbstract_iB_zIJiKIuxUHx5" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold; text-align: left">Supplemental disclosure of cash flow information</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--InterestPaidNet_i01_zoL6zZrQcAdj" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Interest paid</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0364">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0365">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--IncomeTaxesPaidNet_i01_zHqImwFONBl4" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Income taxes paid</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0367">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0368">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--NoncashInvestingAndFinancingItemsAbstract_iB_ztg2rZW1Ctqi" style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold; text-align: left">Supplemental disclosure of non-cash investing and financing transactions</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_ecustom--NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment_i01_zZ3m5XgafGtb" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Inventory moved to property, plant and equipment</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="CODX:NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">192,056</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0374">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_i01_zD70Ae6hGrTl" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">Right-of-use assets obtained in exchange for new operating lease liabilities</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">681,327</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0377">-</span></td><td style="text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">See
accompanying notes to unaudited consolidated financial statements</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 5; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->5<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_006"></span>CO
&#8211; DIAGNOSTICS, INC. AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CONSOLIDATED
STATEMENTS OF STOCKHOLDERS&#8217; EQUITY</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>(Unaudited)</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" id="xdx_304_114_zXlGKUVKUebd" summary="xdx: Statement - Consolidated Statements of Stockholders&apos; Equity (Unaudited)" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td>&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" id="xdx_4BF_us-gaap--StatementClassOfStockAxis_us-gaap--ConvertiblePreferredStockMember_us-gaap--StatementEquityComponentsAxis_us-gaap--PreferredStockMember_zg45u0uBLUPg" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" id="xdx_4B1_us-gaap--StatementEquityComponentsAxis_us-gaap--CommonStockMember_zaTYr4XgVtu7" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" id="xdx_4B4_us-gaap--StatementEquityComponentsAxis_us-gaap--AdditionalPaidInCapitalMember_zslN63JtXBGi" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Capital</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" id="xdx_4BC_us-gaap--StatementEquityComponentsAxis_us-gaap--RetainedEarningsMember_z0nMlKmH3Dla" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">(Deficit)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" id="xdx_4B1_z5rptsBlq6H8" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Equity</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td>&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Convertible Preferred Stock</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Common Stock</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Additional Paid-in</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Accumulated Earnings</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Total Stockholders&#8217;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td>&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Capital</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">(Deficit)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Equity</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_430_c20220101__20220331_eus-gaap--StockholdersEquity_iS_zOsJbBGIT8Dh" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 30%; padding-bottom: 2.5pt">Balance as of December 31, 2021</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right">&#160;&#160;&#160;&#160;&#160;-</td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0379">&#160;</span>-</td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--SharesOutstanding_iS_pid_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zN3stjnRfk8l" title="Beginning balance, shares" style="padding-bottom: 2.5pt; width: 6%; text-align: right"><ix:nonFraction name="us-gaap:SharesOutstanding" contextRef="AsOf2021-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,819,862</ix:nonFraction></td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">33,820</ix:nonFraction></td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">80,271,999</ix:nonFraction></td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">54,169,279</ix:nonFraction></td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="width: 2%; padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td style="padding-bottom: 2.5pt; width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">134,475,098</ix:nonFraction></td><td style="width: 1%; padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--StockIssuedDuringPeriodValueStockOptionsExercised_i_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Common stock issued for option exercises</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0387">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td style="border-left: Black 1pt solid">&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_pid_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zxFaem0PUqNd" title="Common stock issued for option exercises, shares" style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">45,456</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">45</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">49,956</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0390">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,001</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--StockIssuedDuringPeriodValueOther_i_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Common stock issued for warrant exercises</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0395">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td style="border-left: Black 1pt solid">&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_980_eus-gaap--StockIssuedDuringPeriodSharesOther_pid_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_z9pemj2Nsh7c" title="Common stock issued for warrant exercises, shares" style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesOther" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">50,000</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueOther" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueOther" contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">99,950</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueOther" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">100,000</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_eus-gaap--StockIssuedDuringPeriodValueShareBasedCompensationGross_i_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Stock-based compensation</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0403">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td style="border-left: Black 1pt solid">&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98D_eus-gaap--StockIssuedDuringPeriodSharesShareBasedCompensationGross_pid_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zJ8Iv8Mon3J3" title="Stock-based compensation expense, shares" style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">68,750</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">69</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,375,028</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0406">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,375,097</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--NetIncomeLoss_i_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left; padding-bottom: 1pt">Net income</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0411">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0412">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0413">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,714,595</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,714,595</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_438_c20220101__20220331_eus-gaap--StockholdersEquity_iE_zP9Wj5YctY1c" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">-</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0417">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--SharesOutstanding_iE_pid_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zaKPbr7Tfo6l" title="Ending balance, shares" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:SharesOutstanding" contextRef="AsOf2022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,984,068</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">33,984</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">81,796,933</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">65,883,874</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">147,714,791</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td>&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Convertible Preferred Stock</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Common Stock</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Additional Paid-in</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Accumulated Earnings</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="padding-bottom: 1pt; font-weight: bold; text-align: center">Total Stockholders&#8217;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td>&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="border-left: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Amount</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Capital</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">(Deficit)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Equity</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_43B_c20210101__20210331_eus-gaap--StockholdersEquity_iS_zc5PR9pjKnD8" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 30%">Balance as of December 31, 2020</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">&#160;</td><td style="width: 6%; text-align: right">&#160;&#160;&#160;&#160;&#160;&#160;&#160;-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 6%; text-align: right">&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0425">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">&#160;</td><td id="xdx_988_eus-gaap--SharesOutstanding_iS_pid_c20210101__20210331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_z7G4nA05JpGf" title="Beginning balance, shares" style="width: 6%; text-align: right"><ix:nonFraction name="us-gaap:SharesOutstanding" contextRef="AsOf2020-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">28,558,033</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2020-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">28,558</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">49,157,236</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2020-12-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">17,510,715</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 6%; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2020-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">66,696,509</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--StockIssuedDuringPeriodValueStockOptionsExercised_zRyGltSOjlUl" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Common stock issued for option exercises</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0433">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td style="border-left: Black 1pt solid">&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_980_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_pid_c20210101__20210331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zZGPXIi0B07b" title="Common stock issued for option exercises, shares" style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">65,891</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">66</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">148,914</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0436">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">148,980</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--StockIssuedDuringPeriodValueShareBasedCompensationGross_zxPapp8sm2i5" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Stock-based compensation</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0441">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td style="border-left: Black 1pt solid">&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--StockIssuedDuringPeriodSharesShareBasedCompensationGross_pid_c20210101__20210331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zqWlJg2pmX5b" title="Stock-based compensation expense, shares" style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross" contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">73,040</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">42</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,512,970</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0444">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,513,012</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--NetIncomeLoss_zKR5XCSa32ig" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left; padding-bottom: 1pt">Net income</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0449">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0450">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0451">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,898,975</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,898,975</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_43D_c20210101__20210331_eus-gaap--StockholdersEquity_iE_zjvNqlGeTB4c" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2021</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">-</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0455">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="border-left: Black 1pt solid; padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--SharesOutstanding_iE_pid_c20210101__20210331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_ziesVip03GP" title="Ending balance, shares" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:SharesOutstanding" contextRef="AsOf2021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">28,696,964</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">28,666</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-03-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,819,120</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-03-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,409,690</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:StockholdersEquity" contextRef="AsOf2021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">76,257,476</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">See
accompanying notes to unaudited consolidated financial statements</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 6; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->6<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_007"></span>CO
&#8211; DIAGNOSTICS, INC. AND SUBSIDIARIES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>NOTES
TO UNAUDITED CONSOLIDATED FINANCIAL STATEMENTS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>(Unaudited)</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock"><p id="xdx_80F_eus-gaap--BusinessDescriptionAndBasisOfPresentationTextBlock_zz9XBp7tea75" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
1 &#8211; <span id="xdx_822_zaRgwhQKhTU6">Overview and Basis of Presentation</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Description
of Business</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 27.35pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Co-Diagnostics,
Inc., a Utah corporation (the &#8220;Company&#8221;, &#8220;Co-Dx&#8221; or &#8220;CODX&#8221;), develops, manufactures and sells
reagents used for diagnostic tests that function via the detection and/or analysis of nucleic acid molecules (DNA or RNA), including
robust and innovative molecular tools for detection of infectious diseases, liquid biopsy for cancer screening, and agricultural applications.
In connection with the sale of our tests we may sell diagnostic equipment from other manufacturers as self-contained lab systems (which
we refer to as the &#8220;MDx Device&#8221;). We are also developing a unique, groundbreaking portable PCR testing platform (the &#8220;Co-Dx
PCR home testing platform&#8221;) designed to bring affordable, reliable gold-standard polymerase chain reaction (&#8220;PCR&#8221;)
to patients in point-of-care and even at-home settings.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Unaudited
Consolidated Financial Statements</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
accompanying unaudited consolidated financial statements of the Company have been prepared in accordance with accounting principles generally
accepted in the United States of America for interim financial information and with the instructions to Form 10-Q as they are prescribed
for smaller reporting companies and emerging growth companies. Accordingly, they do not include all the information and footnotes required
by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of management,
all adjustments (consisting of normal recurring accruals) considered necessary to make the financial statements not misleading have been
included. Operating results for the three months ended March 31, 2022 are not necessarily indicative of the results that may be expected
for the year ending December 31, 2022. These statements should be read in conjunction with the Company&#8217;s audited financial statements
and related notes for the year ended December 31, 2021, included in the Company&#8217;s Annual Report on Form 10-K filed on March 24,
2022.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Use
of Estimates</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
preparation of financial statements in conformity with generally accepted accounting principles requires management to make estimates
and assumptions that affect the amounts reported in the financial statements and the accompanying notes. Such estimates include receivables
and other long-lived assets, legal and regulatory contingencies, income taxes, share based arrangements, and others. These estimates
and assumptions are based on management&#8217;s best estimates and judgments. Actual amounts and results could differ from those estimates.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:SignificantAccountingPoliciesTextBlock"><p id="xdx_80F_eus-gaap--SignificantAccountingPoliciesTextBlock_zB6FigEwh2B4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
2 &#8211; <span id="xdx_82A_zJfeACbnJRze">Summary of Significant Accounting Policies</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock"><p id="xdx_843_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zgP1fzlAOOTe" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Cash
and Cash Equivalents</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Cash
and cash equivalents consist of cash on hand, money market funds and highly liquid investments with an original maturity date of 90 days
or less from the date of purchase. The fair value of cash equivalents approximated their carrying value as of March 31, 2022 and December
31, 2021. The Company has its cash and cash equivalents with a large creditworthy financial institution and the balance exceeded federally
insured limits. The Company has not experienced any losses in such accounts, and management believes the Company is not exposed to any
significant credit risk on cash and cash equivalents.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:MarketableSecuritiesPolicy"><p id="xdx_845_eus-gaap--MarketableSecuritiesPolicy_zB1GZqFRT1wb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Marketable
Investment Securities</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s marketable investment securities are comprised of investments in certificates of deposit. The Company determines the
appropriate classification of its marketable investment securities at the time of purchase and reevaluates such designation at each balance
sheet date. The Company has classified and accounted for its marketable investment securities as available-for-sale securities as the
Company may sell these securities at any time for use in its current operations or for other purposes, even prior to maturity. As a result,
the Company classifies its marketable investment securities, including securities with stated maturities beyond twelve months, within
current assets in the consolidated balance sheets. Any unrealized gains or losses are immaterial.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 7; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->7<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:TradeAndOtherAccountsReceivablePolicy"><p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zyTPsu5XMaJ8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Accounts
Receivable</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Trade
accounts receivable are recorded at the invoiced amount (net of allowance) and do not bear interest. The Company maintains an allowance
for doubtful accounts for amounts the Company does not expect to collect. In establishing the required allowance, management considers
historical losses, current market condition, customers&#8217; financial condition, the age of receivables, and current payment patterns.
Account balances are written off against the allowance once the receivable is deemed uncollectible. Recoveries of trade receivables previously
written off are recorded when collected. At March 31, 2022, total accounts receivable was $<span id="xdx_905_eus-gaap--AccountsReceivableGrossCurrent_iI_c20220331_zxP07cEI8Oki" title="Accounts receivable"><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">22,379,861</ix:nonFraction></span> with an allowance for uncollectable
accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20220331_zC5TNQyfd03a" title="Doubtful accounts"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">717,458</ix:nonFraction></span> resulting in a net amount of $<span id="xdx_902_eus-gaap--AccountsReceivableNetCurrent_iI_c20220331_zPrkPnLS3Pv5" title="Accounts receivable, net"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">21,662,403</ix:nonFraction></span>. At December 31, 2021, total accounts receivable was $<span id="xdx_909_eus-gaap--AccountsReceivableGrossCurrent_iI_c20211231_zaPHySI4oaB1"><ix:nonFraction name="us-gaap:AccountsReceivableGrossCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">21,508,779</ix:nonFraction></span> with an
allowance for uncollectable accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20211231_zxShRG1Rqs5e"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">669,597</ix:nonFraction></span> resulting in a net amount of $<span id="xdx_906_eus-gaap--AccountsReceivableNetCurrent_iI_c20211231_zHw3ELPKGTrc"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">20,839,182</ix:nonFraction></span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:EquityMethodInvestmentsPolicy"><p id="xdx_844_eus-gaap--EquityMethodInvestmentsPolicy_z5B1vrwVJLQ1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Equity-Method
Investments</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
equity method investments are initially recorded at cost and are included in other long-term assets in the accompanying consolidated
balance sheet. We adjust the carrying value of our investment based on our share of the earnings or losses in the periods which they
are reported by the investee until the carrying amount is zero. The earnings or losses are included in other income (expense) in the
accompanying consolidated statements of operations.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:InventoryPolicyTextBlock"><p id="xdx_843_eus-gaap--InventoryPolicyTextBlock_zIoOuJSf0Oxb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Inventory</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inventory
is stated at the lower of cost or net-realizable value. Inventory cost is determined on a first-in first-out basis that approximates
average cost in accordance with ASC 330-10-30-12. At March 31, 2022, the Company had $<span id="xdx_904_eus-gaap--InventoryNet_iI_c20220331_zWeIZTfEDPwc" title="Inventory"><ix:nonFraction name="us-gaap:InventoryNet" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,901,057</ix:nonFraction></span> in inventory, of which $<span id="xdx_904_eus-gaap--InventoryFinishedGoods_iI_c20220331_zrIBb3uaUXMb" title="Inventory finished goods"><ix:nonFraction name="us-gaap:InventoryFinishedGoods" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,119,549</ix:nonFraction></span> was
finished goods and $<span id="xdx_909_eus-gaap--InventoryRawMaterials_iI_c20220331_zQYNiHkaRDw6" title="Inventory raw materials"><ix:nonFraction name="us-gaap:InventoryRawMaterials" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">781,508</ix:nonFraction></span> was raw materials. At December 31, 2021, the Company had $<span id="xdx_900_eus-gaap--InventoryNet_iI_c20211231_z55GydraidKi"><ix:nonFraction name="us-gaap:InventoryNet" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,004,169</ix:nonFraction></span> in inventory, of which $<span id="xdx_90A_eus-gaap--InventoryFinishedGoods_iI_c20211231_z3p9z2hYbej"><ix:nonFraction name="us-gaap:InventoryFinishedGoods" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">983,088</ix:nonFraction></span> was finished
goods and $<span id="xdx_903_eus-gaap--InventoryRawMaterials_iI_c20211231_zwVFypuKCfp4"><ix:nonFraction name="us-gaap:InventoryRawMaterials" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,021,081</ix:nonFraction></span> was raw materials. The Company establishes reserves to reduce slow-moving, obsolete, or unusable inventories to
their estimated useful or scrap values.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock"><p id="xdx_845_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zfvh6Drr6V6g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Property
and Equipment</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Property
and equipment are stated at cost less accumulated depreciation and amortization. Depreciation is provided using the straight-line method
over the estimated useful lives of the property, generally from <span id="xdx_90B_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dxL_c20220101__20220331__srt--RangeAxis__srt--MinimumMember_z9D5FsdDpQ15" title="::XDX::P3Y"><span style="-sec-ix-hidden: xdx2ixbrl0496">three</span></span> to <span id="xdx_90E_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dc_c20220101__20220331__srt--RangeAxis__srt--MaximumMember_zK8pvEATGOl7" title="Estimated useful life of property"><ix:nonNumeric contextRef="From2022-01-012022-03-31_srt_MaximumMember" format="ixt-sec:durwordsen" name="us-gaap:PropertyPlantAndEquipmentUsefulLife">five years</ix:nonNumeric></span>. Repairs and maintenance costs are expensed as incurred
except when such repairs significantly add to the useful life or productive capacity of the asset, in which case the repairs are capitalized.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company reviews its long-lived assets, including property and equipment, for impairment whenever an event or change in facts and circumstances
indicates that their carrying amounts may not be recoverable. Recoverability of these assets is measured by comparing the carrying amount
to the estimated undiscounted future cash flows expected to be generated. If the carrying amount exceeds the undiscounted cash flows,
the assets are determined to be impaired and an impairment charge is recognized as the amount by which the carrying amount exceeds fair
value.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:BusinessCombinationsPolicy"><p id="xdx_840_eus-gaap--BusinessCombinationsPolicy_z7LzhubAB0Sf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Business
Combinations</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
estimate the fair value of assets acquired and liabilities assumed in a business combination. Goodwill as of the acquisition date is
measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities
assumed. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets.
Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and
unpredictable, and as a result, actual results may differ from estimates.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:LesseeLeasesPolicyTextBlock"><p id="xdx_845_eus-gaap--LesseeLeasesPolicyTextBlock_zC983qpkCyib" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Leases</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
described in &#8220;Recently Adopted Accounting Standards&#8221; below, the Company adopted ASC 842, Leases (&#8220;ASC 842&#8221;) effective
January 1, 2022. Under ASC 842, the Company determines if an arrangement is or contains a lease at inception by assessing whether the
arrangement contains an identified asset and whether it has the right to control the identified asset. Right-of-use (ROU) assets represent
the Company&#8217;s right to use an underlying asset for the lease term and lease liabilities represent the Company&#8217;s obligation
to make lease payments arising from the lease. Lease liabilities are recognized at the lease commencement date based on the present value
of future lease payments over the lease term. ROU assets are based on the measurement of the lease liability and also include any lease
payments made prior to or on lease commencement and exclude lease incentives and initial direct costs incurred, as applicable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
the implicit rate in the Company&#8217;s leases is generally unknown, the Company uses its incremental borrowing rate based on the information
available at the lease commencement date in determining the present value of future lease payments. The Company considers its credit
risk, term of the lease, total lease payments and adjusts for the impacts of collateral, as necessary, when calculating its incremental
borrowing rates. The Company evaluates renewal options at lease inception and on an ongoing basis and includes renewal options that it
is reasonably certain to exercise in its expected lease terms when classifying leases and measuring lease liabilities. Lease costs for
the Company&#8217;s operating leases are recognized on a straight-line basis within operating expenses and cost of revenue over the reasonably
assured lease term.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has elected to not separate lease and non-lease components for leases of office space and, as a result, accounts for any lease
and non-lease components for office space as a single lease component, to the extent they are fixed. Non-lease components that are not
fixed are expensed as incurred as variable lease payments. The Company&#8217;s office leases typically include non-lease components such
as common-area maintenance costs. The Company has also elected to not apply the recognition requirement to any leases within its existing
classes of assets with a term of 12 months or less.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:RevenueRecognitionPolicyTextBlock"><p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zAtkVYfTVgP3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Revenue
Recognition</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company generates revenue from product sales and license sales. The Company recognizes revenue when all of the following criteria are
satisfied: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or
services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction
price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations; and
(v) recognition of revenue when, or as the Company satisfies each performance obligation.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 8; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->8<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company constrains revenue by giving consideration to factors that could otherwise lead to a probable reversal of revenue. The Company
records any payments received from customers prior to the Company fulfilling its performance obligation(s) as deferred revenue.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock"><p id="xdx_84D_eus-gaap--RevenueFromContractWithCustomerPolicyTextBlock_zcppXrJSBXXd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Deferred
Revenue</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Deferred
revenue primarily consists of payments received from customers prior to the Company fulfilling its performance obligation of providing
the product. When this occurs, the Company records a contract liability as deferred revenue. Deferred revenue is recognized as revenue
as the related performance obligations are satisfied.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ResearchAndDevelopmentExpensePolicy"><p id="xdx_841_eus-gaap--ResearchAndDevelopmentExpensePolicy_zzsm7sYzTWsa" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Research
and Development</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Research
and development costs are expensed when incurred. For the three months ended March 31, 2022, the Company expensed $<span id="xdx_905_eus-gaap--ResearchAndDevelopmentExpense_c20220101__20220331_zoT4Gpan3zig" title="Research and development"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,771,327</ix:nonFraction></span> of research
and development costs, respectively. For the three months ended March 31, 2021, the Company expensed $<span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20210101__20210331_zxyNCpkq2ayl"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,217,063</ix:nonFraction></span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy"><p id="xdx_847_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zLD9KSnNIb4d" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock-based
Compensation</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has granted stock-based awards, including restricted stock, stock options, stock warrants and restricted stock units (&#8220;RSUs&#8221;),
to its employees, certain consultants and members of its board of directors. The Company records stock-based compensation based on the
grant date fair value of the awards and recognizes the fair value of those awards as expense using the straight-line method over the
requisite service period of the award. The Company estimates the grant date fair value of stock options using the Black-Scholes option-pricing
model. When an award is forfeited prior to the vesting date, the Company recognizes an adjustment for the previously recognized expense
in the period of the forfeiture.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:IncomeTaxPolicyTextBlock"><p id="xdx_84D_eus-gaap--IncomeTaxPolicyTextBlock_zEKwmtpEkMmk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Income
Taxes</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company accounts for income taxes in accordance with the liability method of accounting for income taxes. Under this method, deferred
income tax assets and deferred income tax liabilities represent the tax effect of temporary differences between financial reporting and
tax reporting measured at enacted tax rates in effect for the year in which the differences are expected to reverse. The Company recognizes
only the impact of tax positions that, based on their technical merits, are more likely than not to be sustained upon an audit by the
taxing authority.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Valuation
allowances are provided when it is more-likely-than-not that some or all of the deferred income tax assets may not be realized. In assessing
the need for a valuation allowance, the Company has considered its historical levels of income, expectations of future taxable income
and ongoing tax planning strategies.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Developing
the provision for income taxes, including the effective tax rate and analysis of potential tax exposure items, if any, requires significant
judgment and expertise in federal and state income tax laws, regulations and strategies, including the determination of deferred income
tax assets and liabilities and any estimated valuation allowances deemed necessary to value deferred income tax assets. Judgments and
tax strategies are subject to audit by various taxing authorities. While the Company believes it has no significant uncertain income
tax positions in the consolidated financial statements, adverse determinations by these taxing authorities could have a material adverse
effect on the consolidated financial positions, result of operations, or cash flows.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:EarningsPerSharePolicyTextBlock"><p id="xdx_847_eus-gaap--EarningsPerSharePolicyTextBlock_ziD63g3a2Ksk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Net
Income per Share</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Basic
net income or loss per common share is computed by dividing net income or loss applicable to common shareholders by the weighted average
number of shares outstanding during each period.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Diluted
net income or loss per share is computed by dividing net income or loss attributable to common stockholders by the weighted-average number
of shares of common stock outstanding during the period increased by common shares that could be issued upon conversion or exercise of
other outstanding securities to the extent those additional common shares would be dilutive. The dilutive effect of potentially dilutive
securities is reflected in diluted net income or loss per share by application of the treasury stock method. During periods when the
Company is in a net loss position, basic net loss per share is the same as diluted net loss per share as the effects of potentially dilutive
securities are anti-dilutive.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ConcentrationRiskCreditRisk"><p id="xdx_849_eus-gaap--ConcentrationRiskCreditRisk_zWYCWNbSntV8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Concentrations
Risk and Significant Customers</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company had certain customers which are each responsible for generating 10% or more of the total revenue for the three months ended March
31, 2022. Three customers together accounted for approximately <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zGhPwyoulaY5" title="Concentration risk percentage"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2022-01-012022-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">54</ix:nonFraction></span>% and <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zaj1LJyqynBe" title="Concentration risk percentage"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2021-01-012021-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">57</ix:nonFraction></span>% of total revenue for the three months ended March 31, 2022
and March 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Two
customers each accounted for more than 10% of accounts receivable at March 31, 2022 and December 31, 2021. These two customers together
accounted for approximately <span id="xdx_906_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_z71rrH0xurDh" title="Concentration risk percentage"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2022-01-012022-03-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">62</ix:nonFraction></span>% and <span id="xdx_905_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20211231__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_ziYiggZXUXhi" title="Concentration risk percentage"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2021-01-012021-12-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">66</ix:nonFraction></span>% of accounts receivable at March 31, 2022 and December 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 9; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->9<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock"><p id="xdx_842_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zyT1QLCRuJac" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recent
Accounting Pronouncements</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">From
time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (&#8220;FASB&#8221;) that are adopted
by the Company as of the specified effective date. If not discussed, management believes that the impact of recently issued standards,
which are not yet effective, will not have a material impact on the Company&#8217;s financial statements upon adoption.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="CODX:RecentlyAdoptedAccountingStandardsPolicyTextBlock"><p id="xdx_847_ecustom--RecentlyAdoptedAccountingStandardsPolicyTextBlock_zE3ij2MeBTIj" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recently
Adopted Accounting Standards</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
June 2016, the FASB issued ASU No. 2016-13, Financial Instruments-Credit Losses (Topic 326) (&#8220;ASU 2016-13&#8221;), which requires
the measurement and recognition of expected credit losses for certain financial instruments, which includes the Company&#8217;s accounts
receivable. ASU 2016-13 replaces the existing incurred loss impairment model with an expected loss methodology, which will result in
more timely recognition of credit losses. The Company adopted ASU 2016-13 on January 1, 2022. The adoption did not have an impact on
the Company&#8217;s financial statements.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
February 2016, the FASB issued ASU No. 2016-02, Leases (Topic 842) (&#8220;ASU 2016-02&#8221;), which requires a lessee to recognize
most leases on the balance sheet as lease liabilities with corresponding right-of-use assets. The objective of ASU 2016-02 is to increase
transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and disclosing
key information about leasing arrangements. The recognized lease liabilities and lease assets represent the obligation to make payments
and the right to use or control the use of a specified asset for the lease term, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
January 1, 2022, the Company adopted Topic 842 using the modified retrospective approach with the effective date as the date of initial
application. Consequently, results for the three months ended March 31, 2022 are presented under Topic 842. No prior period amounts were
adjusted and continue to be reported in accordance with previous lease guidance, ASC Topic 840, Leases. The Company elected the practical
expedients available under the provisions of the new standard, including not reassessing whether expired or existing contracts are or
contain leases; not reassessing the classification of expired or existing leases; and not reassessing the initial direct cost for any
existing leases. Upon adoption, the Company recognized an operating lease liability of $<span id="xdx_90B_eus-gaap--OperatingLeaseLiability_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zrmqbtYG3kd5" title="Operating lease liability"><ix:nonFraction name="us-gaap:OperatingLeaseLiability" contextRef="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member" format="ixt:numdotdecimal" decimals="0" unitRef="USD">626,699</ix:nonFraction></span> and a corresponding operating right-of-use
asset of $<span id="xdx_90F_eus-gaap--OperatingLeaseRightOfUseAsset_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zmvU4EdFzMed" title="Operating right use of asset"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member" format="ixt:numdotdecimal" decimals="0" unitRef="USD">681,327</ix:nonFraction></span>.</span></p>

</ix:nonNumeric><p id="xdx_85F_zxmbHXaOSlH7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:BusinessCombinationDisclosureTextBlock"><p id="xdx_802_eus-gaap--BusinessCombinationDisclosureTextBlock_zezkZV4G19X7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
3 &#8211; <span id="xdx_82A_znBmDVcai0xk">Business Combinations</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
December 31, 2021, the Company completed its acquisition of Advanced Conceptions, Inc. (&#8220;ACI&#8221;) and Idaho Molecular Inc. (&#8220;IdMo&#8221;),
which were related entities developing, with the Company, an at-home/point-of-care medical diagnostic device. Upon the completion of
the acquisition, all outstanding ACI and Idaho Molecular common stock was exchanged for approximately <span id="xdx_90C_ecustom--StockIssuedDuringPeriodSharesExchanged_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zah1btN5jz1j" title="Number of shares exchanged"><ix:nonFraction name="CODX:StockIssuedDuringPeriodSharesExchanged" contextRef="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="Shares">3.2</ix:nonFraction></span> million shares of the Company&#8217;s
common stock and contingent consideration that includes up to approximately <span id="xdx_904_ecustom--StockIssuedDuringPeriodSharesContingentConsideration_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_z2wzDq5nLask" title="Number of shares on contingent consideration"><ix:nonFraction name="CODX:StockIssuedDuringPeriodSharesContingentConsideration" contextRef="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="Shares">1.4</ix:nonFraction></span> million shares and approximately <span id="xdx_90F_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zXgz8Km99jFd" title="Warrants to purchase shares of common stock"><ix:nonFraction name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" contextRef="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">456,000</ix:nonFraction></span> warrants to
purchase shares of the Company&#8217;s common stock. The contingent consideration is based on the achievement of certain milestones,
which include regulatory approval for identified products, as well as production and net revenue targets. Upon the completion of the
acquisition, both ACI and IdMo became <span id="xdx_903_eus-gaap--EquityMethodInvestmentOwnershipPercentage_iI_pid_dp_uPure_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zvJ2mq5EbCUl" title="Equity method investment ownership percentage"><ix:nonFraction name="us-gaap:EquityMethodInvestmentOwnershipPercentage" contextRef="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">100</ix:nonFraction></span>% wholly-owned subsidiaries of the Company.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock"><p id="xdx_808_eus-gaap--GoodwillAndIntangibleAssetsDisclosureTextBlock_zh0gcNIU0vek" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
4 &#8211; <span id="xdx_827_zt0ipSyKNAE">Goodwill and Intangible Assets</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Goodwill</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Goodwill
represents the excess of purchase price and related costs over the value assigned to net tangible and identifiable intangible assets
acquired in business combinations. The following table presents the changes in the carrying amount of goodwill for the three months ended
March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfGoodwillTextBlock"><p id="xdx_89E_eus-gaap--ScheduleOfGoodwillTextBlock_zNKvrRjW2GS9" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span id="xdx_8B1_zChWuxf0sQvi" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt">Schedule
of Goodwill</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 80%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><span id="xdx_906_eus-gaap--Goodwill_iS_c20220101__20220331_zoVCUAo7egf3" title="Goodwil - beginning"><ix:nonFraction name="us-gaap:Goodwill" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,706,818</ix:nonFraction></span></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Measurement period adjustments</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><span id="xdx_90B_eus-gaap--GoodwillTranslationAndPurchaseAccountingAdjustments_c20220101__20220331_zHygSGmTLytk" title="Measurement period adjustments"><ix:nonFraction name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">101,593</ix:nonFraction></span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span id="xdx_90E_eus-gaap--Goodwill_iE_c20220101__20220331_zRLiEXrabRhe" title="Goodwill - Ending"><ix:nonFraction name="us-gaap:Goodwill" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,808,411</ix:nonFraction></span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A8_zIF5JEsi2yfj" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Intangible
Assets, Net</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"><p id="xdx_89F_eus-gaap--ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_zJa2P4Y8T406" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table presents details of the Company&#8217;s intangible assets, excluding goodwill:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BF_zgE3NboDLkA8" style="display: none">Schedule
of Intangible Assets, Net</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F57_zBFu4bsO6F3f" style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_90C_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zDKmPNrA2Mje" title="Estimated useful lives in years, term"><ix:nonNumeric contextRef="From2022-01-012022-03-31_us-gaap_InProcessResearchAndDevelopmentMember" id="Fact000559" name="CODX:IndefiniteLivedIntangibleAssetUsefulLife">Indefinite</ix:nonNumeric></span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zkmfhabgZoP3" title="Intangible assets, gross" style="width: 12%; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">26,101,000</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_z6Z76aPq5Hpj" title="Less accumulated amortization" style="width: 12%; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0563">-</span></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zvokvOusumng" title="Intangible assets, net" style="width: 12%; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">26,101,000</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_90D_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zzdfILwGsPYc" title="Estimated useful lives in years"><ix:nonNumeric contextRef="From2022-01-012022-03-31_us-gaap_NoncompeteAgreementsMember" format="ixt-sec:duryear" id="Fact000567" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife">2.7</ix:nonNumeric></span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_zohu0FcEjMYf" title="Intangible assets, gross" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,094,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_980_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z4Ei9KS0LzZ8" title="Less accumulated amortization" style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">106,667</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z53hK2brfdw2" title="Intangible assets, net" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">987,333</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331_zkagNvevVauj" title="Intangible assets, gross" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">27,195,000</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331_zXLIfDm0qjnj" title="Less accumulated amortization" style="border-bottom: Black 2.5pt double; text-align: right">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">106,667</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">)</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98B_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331_zNQux8I6Hn0e" title="Intangible assets, net" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">27,088,333</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F5F_zELYSdNrVfW1" style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_903_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zJx29r9pxK9g" title="Estimated useful lives in years, term"><ix:nonNumeric contextRef="From2021-01-012021-12-31_us-gaap_InProcessResearchAndDevelopmentMember" id="Fact000581" name="CODX:IndefiniteLivedIntangibleAssetUsefulLife">Indefinite</ix:nonNumeric></span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98B_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" title="Intangible assets, gross" style="width: 12%; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">26,101,000</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zPXKJERjBEXd" title="Less accumulated amortization" style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0585">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" title="Intangible assets, net" style="width: 12%; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">26,101,000</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_901_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zpya74ClTkIe" title="Estimated useful lives in years"><ix:nonNumeric contextRef="From2021-01-012021-12-31_us-gaap_NoncompeteAgreementsMember" format="ixt-sec:duryear" id="Fact000589" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife">2.7</ix:nonNumeric></span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" title="Intangible assets, gross" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,094,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z74rMJDRk40h" title="Less accumulated amortization" style="border-bottom: Black 1pt solid; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0593">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" title="Intangible assets, net" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,094,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: center">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_982_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20211231_zCJzpe3CXbJa" title="Intangible assets, gross" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">27,195,000</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231_zsnEOWSQhXQb" title="Less accumulated amortization" style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0599">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_c20211231_zHPEkGXDPGm8" title="Intangible assets, net" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">27,195,000</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
</table>

<p style="margin: 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 6pt; width: 100%"><tr style="vertical-align: top; text-align: justify">
<td id="xdx_F04_zWP69sqgYFp1" style="width: 15pt; text-align: right">(1)</td><td style="width: 5pt"></td><td id="xdx_F1D_zBPHoGCJYju4" style="text-align: justify"><ix:footnote id="Footnote000602" xml:lang="en-US">Based on weighted-average useful life established as of the acquisition date.</ix:footnote></td>
</tr></table>



</ix:nonNumeric><p id="xdx_8A1_zUOYHPzJgJ2e" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:FairValueDisclosuresTextBlock"><p id="xdx_80E_eus-gaap--FairValueDisclosuresTextBlock_ziMe1JWkYAM1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
5 &#8211; <span id="xdx_821_zWcDPj3icLLa">Fair Value Measurements</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company measures and records certain financial assets at fair value on a recurring basis. Fair value is based on the price that would
be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement
date.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s financial instruments that are measured at fair value on a recurring basis consist of money market funds. The following
three levels of inputs are used to measure the fair value of financial instruments:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
1: Quoted market prices in active markets for identical assets or liabilities.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
2: Observable market-based inputs or unobservable inputs that are corroborated by market data.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
3: Unobservable inputs that are not corroborated by market data.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 10; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->10<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock"><p id="xdx_89D_eus-gaap--FairValueAssetsMeasuredOnRecurringBasisTextBlock_z1TUnPHxPCpf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes the assets measured at fair value on a recurring basis as of March 31, 2022, and December 31, 2021, by level
within the fair value hierarchy:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B3_zn0KXPJ85aM5" style="display: none">Schedule of Fair Value Assets and Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_492_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zGoKCJzpIDg1" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zzmeErf3pD07" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_490_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_zO0RfpKIVpef" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zKMZBJbGrbO4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">March 31, 2022</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; width: 36%; text-align: left">Contingent consideration - common stock</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0608">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0609">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">6,013,939</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">6,013,939</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0613">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0614">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,038,812</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,038,812</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0618">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0619">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">7,052,751</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">7,052,751</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zAmUwVrBVhw" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zYpB9BBZWTFb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49A_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_z4YHECf1mR8a" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_496_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zPwwxwJxes51" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Assets:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--MarketableSecurities_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; width: 36%; text-align: left">Marketable securities (certificates of deposit)</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0623">&#160;</span>-</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:MarketableSecurities" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0625">-</span></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:MarketableSecurities" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AssetsFairValueDisclosure_iI_pp0p0_zgIfNXbnLOh2" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total assets measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0628">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:AssetsFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0630">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:AssetsFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,255,266</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0_zgr84fZvOWrl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Contingent consideration - common stock</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0633">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0634">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">8,684,669</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToCommonStock" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">8,684,669</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0_z0x9aLWcjeha" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0638">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0639">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,747,972</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="CODX:FairValueOfContingentConsiderationToWarrants" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">1,747,972</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0_zO5KsAJZbvZd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0643">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0644">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,432,641</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:LiabilitiesFairValueDisclosure" contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,432,641</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A2_zdVDT85boOPb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s financial instruments that are measured at fair value on a recurring basis consist of certificates of deposit.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock"><p id="xdx_89F_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_zmbwcccQ4PC3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
changes for Level 3 items measured at fair value on a recurring basis are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 60pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_8B9_zyJTykKEdo26" style="display: none">Schedule of Changes in Fair Value Measurement</span>&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_49B_20220101__20220331_zg7E92CjoGm9" style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iS_pp0p0_zvJD5kRCGtD1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Fair value as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><ix:nonFraction name="us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,432,641</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--ContingentConsideredIssuedForBusinessAcquisitions_i_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Change in fair value of contingent consideration issued for business acquisitions</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="CODX:ContingentConsideredIssuedForBusinessAcquisitions" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" sign="-" unitRef="USD">3,379,890</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_406_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iE_zrChinXAcgF1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Fair value as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,052,751</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AD_z5p9XuLxjwv4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock"><p id="xdx_890_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_zwZSxdEWWSng" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
fair value of the contingent consideration is based on the fair value of the contingent consideration-common stock and contingent consideration-warrants.
The fair value of the contingent consideration-common stock is equal to the probability-adjusted value of the Company&#8217;s common
stock as of March 31, 2022. The fair value of the contingent consideration-warrants is equal to the probability adjusted value of a call
option with terms consistent with the terms of the warrants as of March 31, 2022. Prior to the probability adjustments, the warrants
were valued based on the following inputs:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BD_zPgps9VUSTF9" style="display: none">Schedule of Contingent Consideration Common Stock and Warrants</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"><p style="font: 10pt/107% Times New Roman, Times, Serif; margin: 0"><b>March
                                            31, 2022</b></p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Stock price</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_za3eAJEpvUg4" title="Warrants measurement input" style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2022-03-31_us-gaap_MeasurementInputSharePriceMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">6.18</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_zz2npUQSdEdd" style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2021-12-31_us-gaap_MeasurementInputSharePriceMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">8.93</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Strike price</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zTHjStxkGZ7d" title="Warrants measurement input" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2022-03-31_custom_MeasurementInputStrikePriceMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">9.13</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zeQyIHyXFiD7" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2021-12-31_custom_MeasurementInputStrikePriceMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">9.13</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Volatility</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zCTHGvL6FAhl" title="Warrants measurement input" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2022-03-31_us-gaap_MeasurementInputPriceVolatilityMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">77.50</ix:nonFraction></td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zgzZ47AMeA9" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2021-12-31_us-gaap_MeasurementInputPriceVolatilityMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">80.00</ix:nonFraction></td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Risk-free rate</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zakllESA7O3k" title="Warrants measurement input" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2022-03-31_us-gaap_MeasurementInputRiskFreeInterestRateMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">2.40</ix:nonFraction></td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zd39BWd7xZZi" style="text-align: right"><ix:nonFraction name="us-gaap:WarrantsAndRightsOutstandingMeasurementInput" contextRef="AsOf2021-12-31_us-gaap_MeasurementInputRiskFreeInterestRateMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Pure">1.30</ix:nonFraction></td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Expected term</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_905_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20220331_zvUDBAY5x1e6" title="Expected term"><ix:nonNumeric contextRef="AsOf2022-03-31" format="ixt-sec:duryear" name="us-gaap:WarrantsAndRightsOutstandingTerm">4.8</ix:nonNumeric></span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_90A_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20211231_zxHQ9Ir6Xws1" title="Expected term"><ix:nonNumeric contextRef="AsOf2021-12-31" format="ixt-sec:duryear" name="us-gaap:WarrantsAndRightsOutstandingTerm">5.0</ix:nonNumeric></span></td><td style="text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AB_zJouvqIAqTWh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:RevenueFromContractWithCustomerTextBlock"><p id="xdx_80B_eus-gaap--RevenueFromContractWithCustomerTextBlock_zpqPoGw7nbef" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
6 &#8211; <span id="xdx_82B_zcoVpJOpGVii">Revenue</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock"><p id="xdx_891_eus-gaap--ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_zjzpB3Z6a1Vl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table sets forth revenue by geographic area:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B7_zOk31aA4QC46" style="display: none">Summary of Revenue by Geographic Area</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%; text-align: left">United States</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember_zO6KdVB6crp3" title="Revenue" style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2022-01-012022-03-31_srt_AmericasMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,218,398</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_987_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember_zH1raLFWw5ak" title="Revenue" style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2021-01-012021-03-31_srt_AmericasMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">12,493,950</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Rest of World</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zZCwleu1HUqf" title="Revenue" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2022-01-012022-03-31_custom_RestOfWorldMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">8,480,646</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zQMBfqldHG95" title="Revenue" style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2021-01-012021-03-31_custom_RestOfWorldMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,530,819</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt">Total</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_981_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331_zNqA66xgGJe2" title="Revenue" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">22,699,044</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_986_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331_zzGdsVCWa1l4" title="Revenue" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">20,024,769</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Percentage of revenue by area:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">United States</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zJNqsVftaIP7" title="Percentage of revenue" style="text-align: right"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2022-01-012022-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">63</ix:nonFraction></td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_z3vDjFJaFwp" title="Percentage of revenue" style="text-align: right"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2021-01-012021-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">62</ix:nonFraction></td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Rest of World</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zvHtnH8YfXr4" title="Percentage of revenue" style="text-align: right"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2022-01-012022-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">37</ix:nonFraction></td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zpCmkodyV2Dc" title="Percentage of revenue" style="text-align: right"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" contextRef="From2021-01-012021-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">38</ix:nonFraction></td><td style="text-align: left">%</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A0_zIfegbnW6Uyf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Deferred
Revenue</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock"><p id="xdx_89A_eus-gaap--ContractWithCustomerAssetAndLiabilityTableTextBlock_zRNSM86TC98g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Changes
in the Company&#8217;s deferred revenue balance for the three months ended March 31, 2022 were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BC_zb02F7FPfdY3" style="display: none">Schedule of Deferred Revenue</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_982_eus-gaap--ContractWithCustomerLiability_iS_c20220101__20220331_zOG7i8rV0ufb" title="Deferred revenue, beginning balance" style="width: 18%; text-align: right"><ix:nonFraction name="us-gaap:ContractWithCustomerLiability" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">150,000</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; padding-bottom: 1pt; text-align: left">Revenue recognized included in deferred revenue balance at the beginning of the period</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ContractWithCustomerLiabilityRevenueRecognized_iN_di_c20220101__20220331_zK22NJYy1kc5" title="Revenue recognized included in deferred revenue balance at the beginning of the period" style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">150,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98E_eus-gaap--ContractWithCustomerLiability_iE_c20220101__20220331_zAnWErWeVaAb" title="Deferred revenue, Ending balance" style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0704">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AB_zVNoM1I0FPw6" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 11; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->11<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:EarningsPerShareTextBlock"><p id="xdx_80F_eus-gaap--EarningsPerShareTextBlock_zqzsARI95O1j" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
7 &#8211; <span id="xdx_82D_zMHulP5k08b2">Earnings Per Share</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"><p id="xdx_895_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zIjgl2JqHws8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table reconciles the numerator and the denominator used to calculate basic and diluted earnings per share for three months
ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_z6hrEutjv8gc" style="display: none">Schedule of Basic and Diluted Earnings Per Share</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zUpmCzAFxnG6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49C_20210101__20210331_zqoPs1NUpO15" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold">Numerator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--NetIncomeLoss_zMI7jvntCw3g" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; width: 60%; text-align: left">Net income, as reported</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,714,595</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"><ix:nonFraction name="us-gaap:NetIncomeLoss" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">7,898,975</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold">Denominator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40D_ecustom--WeightedAverageNumberOfBasicSharesOutstanding_zCAt5rFLNPri" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Weighted average shares, basic</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:WeightedAverageNumberOfBasicSharesOutstanding" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">33,935,570</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="CODX:WeightedAverageNumberOfBasicSharesOutstanding" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">28,662,885</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--WeightedAverageNumberDilutedSharesOutstandingAdjustment_zlKviuHvxXe" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Dilutive effect of stock options, warrants and RSUs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">775,906</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,339,844</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_zeqgFoJIoihh" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Shares used to compute diluted earnings per share</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">34,711,476</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">30,002,729</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_ecustom--EarningsBasicPerShare_pid_zILOrADzfQfl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Basic earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="CODX:EarningsBasicPerShare" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.35</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="CODX:EarningsBasicPerShare" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.28</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--EarningsPerShareDiluted_pid_z5ENeZbAszth" style="vertical-align: bottom; background-color: White">
    <td>Diluted earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.34</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.26</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A9_zBU4s7DXTxFh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, potentially dilutive securities of <span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331_zaGQ8FbYzGAh" title="Securities excluded from computation of diluted earnings per share"><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,271,304</ix:nonFraction></span> were excluded from the calculation because their
effect would have been anti-dilutive. For the three months ended March 31, 2021, potentially dilutive securities of <span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20210101__20210331_zzuhUVLMdw6i" title="Securities excluded from computation of diluted earnings per share"><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">2,320,907</ix:nonFraction></span> were excluded
from the calculation because their effect would have been anti-dilutive. The computation of diluted earnings per share for the three
months ended March 31, 2022 also excludes the approximately <span id="xdx_902_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_pn5n6_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zeyzTTcNPUS9" title="Securities excluded from computation of diluted earnings per share"><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="Shares">1.4</ix:nonFraction></span> million shares of common stock and approximately <span id="xdx_906_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zWt0YFewv1vd" title="Securities excluded from computation of diluted earnings per share"><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2022-01-012022-03-31_us-gaap_WarrantMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">456,000</ix:nonFraction></span> warrants to
purchase shares of common stock that are contingent upon the achievement of certain milestones.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock"><p id="xdx_803_eus-gaap--DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock_ztGLRUjhkhz1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
8 &#8211; <span id="xdx_823_zEOuy9NOjafe">Stock-Based Compensation</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Incentive Plans</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Co-Diagnostics, Inc. Amended and Restated 2015 Long Term Incentive Plan (the &#8220;Incentive Plan&#8221;) reserves an aggregate of <span id="xdx_90B_eus-gaap--CommonStockCapitalSharesReservedForFutureIssuance_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zpD8EaQDAGt2" title="Aggregate number of common shares reserved"><ix:nonFraction name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" contextRef="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">6,000,000</ix:nonFraction></span>
shares of common stock issuable upon the grant of awards under the Incentive Plan. The number of awards available for issuance under
the Incentive Plan was <span id="xdx_909_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zuIpJWFska7j" title="Number of common shares availalble for issuance"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" contextRef="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">2,095,266</ix:nonFraction></span> at March 31, 2022.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Options</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"><p id="xdx_891_eus-gaap--ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ztKgdy8Bqvh3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes option activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_zFj1t5YgHYJ7" style="display: none">Schedule of Option Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of Options</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iS_c20220101__20220331_zm8ni8HOyp94" title="Number of Options Outstanding, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,111,363</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iS_pid_c20220101__20220331_zjFS2oGGdLC" title="Weighted Average Exercise Price Outstanding, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.12</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331_zAqHrRACGyn1" title="Weighted Average Fair Value Outstanding, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.31</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_pid_dtY_c20220101__20220331_zjmfQduMY8Jh" title="Weighted-average Remaining Contractual Life (years) Outstanding, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">6.62</ix:nonNumeric></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_c20220101__20220331_zFZq5mwhakx6" title="Number of Options Outstanding, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0752">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zLJwzTPT313j" title="Weighted Average Exercise Price Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0754">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zMNO7zKKMxqh" title="Weighted Average Fair Value Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0756">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20220101__20220331_z2lnJiwKu0kd" title="Number of Options Outstanding, Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0758">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zpscqZ4oqLGf" title="Weighted Average Exercise Price Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0760">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_c20220101__20220331_ziJTEheYQg9i" title="Weighted Average Fair Value Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0762">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_c20220101__20220331_zm9zTDNfUqg1" title="Number of Options Outstanding, Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0764">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zI60XZcOrfIg" title="Weighted Average Exercise Price Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0766">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_zTusk0Q1HwEi" title="Weighted Average Fair Value Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0768">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_ecustom--StockIssuedDuringPeriodSharesStockOptionsExercised1_iN_di_c20220101__20220331_zmfWwUWz21fk" title="Number of Options Outstanding, Exercised" style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="CODX:StockIssuedDuringPeriodSharesStockOptionsExercised1" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">45,456</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_pid_c20220101__20220331_zH4PiywzNzl7" title="Weighted Average Exercise Price Exercised" style="padding-bottom: 1pt; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.10</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98B_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_iE_pid_c20220101__20220331_zctHiNPIvZE" title="Weighted Average Fair Value Exercised" style="padding-bottom: 1pt; text-align: right"><ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.51</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iE_c20220101__20220331_z1G0zrKY3xE6" title="Number of Options Outstanding, Ending" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,065,907</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zWUT54m7tuGe" title="Weighted Average Exercise Price Outstanding, Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.17</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_98A_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331_z1CaCrgSNUX5" title="Weighted Average Fair Value Outstanding, Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.35</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_905_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_dtY_c20220101__20220331_zHaUED7Uv6C1" title="Weighted-average Remaining Contractual Life (years) Outstanding, Ending"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:duryear" name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm">6.65</ix:nonNumeric></span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Exercisable at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_iE_c20220101__20220331_ziLdpTMQn0j3" title="Number of Options Exercisable Ending" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,049,241</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zwUa7Rgtndfk" title="Weighted Average Exercise Price, Exercisable Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.05</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_984_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_iE_pid_c20220101__20220331_z1WB4Z83K5md" title="Weighted Average Fair Value, Exercisable Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.21</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90D_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zNnzpFa7cASa" title="Weighted-average Remaining Contractual Life (years), Exercisable Ending"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">6.63</ix:nonNumeric></span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A3_zRuBH60lvY9g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
total intrinsic value of options exercised during the three months ended March 31, 2022 was approximately $<span id="xdx_90E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zZoD4nPdZNT" title="Intrinsic value of options value exercised"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" contextRef="From2022-01-012022-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">0.3</ix:nonFraction></span> million. The aggregate
intrinsic value of outstanding options at March 31, 2022 was approximately $<span id="xdx_907_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zV1WjMkJrShi" title="Aggregate intrinsic value of outstanding options"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="AsOf2022-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">4.5</ix:nonFraction></span> million.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 12; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->12<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Stock-based
compensation cost is measured at the grant date based on the fair value of the award granted and recognized as expense over the vesting
period using the straight-line method. The Company uses the Black-Scholes model to value options granted.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, there were <span id="xdx_903_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_iI_pid_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_z2p1NoWfTHW1" title="Unvested options"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" contextRef="AsOf2022-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">16,666</ix:nonFraction></span> of unvested options and $<span id="xdx_904_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pip0_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zcU9HUokbRth" title="Unrecognized stock-based compensation"><ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" contextRef="AsOf2022-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">37,241</ix:nonFraction></span> of unrecognized stock-based compensation expense. The unrecognized
stock-based compensation expense is expected to be recognized over <span id="xdx_901_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zUlhK2OM32Il" title="Unrecognized stock-based compensation recognition period"><ix:nonNumeric contextRef="From2022-01-012022-03-31_custom_StockOptionsMember" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">0.2</ix:nonNumeric></span> years.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Restricted
Stock Units</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"><p id="xdx_892_eus-gaap--ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_zkR6cdqpf4h" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
grant date fair value of RSUs granted is determined using the closing market price of the Company&#8217;s common stock on the grant date
with the associated compensation expense amortized over the vesting period of the awards. The following table sets forth the outstanding
RSUs and related activity for the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B1_zCzRWJbV2WC1" style="display: none">Schedule of Outstanding Restricted Stock Units and Related Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of RSUs</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Grant Date Fair Value</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; width: 60%">Unvested at December 31, 2021</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iS_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zj0haNKa41L6" title="Number of Restricted Stock Units, Outstanding Beginning" style="padding-bottom: 1pt; width: 16%; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" contextRef="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,267,415</ix:nonFraction></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zPDQwjPVPZQ7" title="Weighted Average Grant Date Fair Value, Outstanding Beginning" style="padding-bottom: 1pt; width: 16%; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">9.94</ix:nonFraction></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zBvpfwns7NXf" title="Number of Restricted Stock Units, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0808">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zbfceDCgQzG1" title="Weighted Average Grant Date Fair Value, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0810">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Vested</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsr2FAUFsY15" title="Number of Restricted Stock Units, Vested" style="text-align: right">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">68,750</ix:nonFraction></td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zdoJlsjmka6f" title="Weighted Average Grant Date Fair Value, Vested" style="text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">10.23</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt">Forfeited/Cancelled</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zd2CW2RnTX41" title="Number of Restricted Stock Units, Forfeited/Cancelled" style="border-bottom: Black 1pt solid; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0816">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zRdW35RSmsJ5" title="Weighted Average Grant Date Fair Value, Forfeited/Cancelled" style="padding-bottom: 1pt; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0818">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Unvested at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iE_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zF15KGf5pLSi" title="Number of Restricted Stock Units, Outstanding Ending" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">1,198,665</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_z4ziqRB3cBJe" title="Weighted Average Grant Date Fair Value, Outstanding Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">9.92</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A8_za2eDRK6cH34" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, there was approximately $<span id="xdx_902_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zgZJ8XzuxWVg" title="Unrecognized stock-based compensation"><ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">10.3</ix:nonFraction></span> million of unrecognized stock-based compensation expense related to outstanding RSUs
which is expected to be recognized over a weighted-average period of <span id="xdx_90C_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zE8TYnrDazh1" title="Unrecognized stock-based compensation recognition period"><ix:nonNumeric contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">2.1</ix:nonNumeric></span> years.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Warrants</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has issued warrants related to financings, acquisitions and as compensation to third parties for services provided. The Company
estimates the fair value of issued warrants on the date of issuance as determined using a Black-Scholes pricing model. The Company amortizes
the fair value of issued warrants using a vesting schedule based on the terms and conditions of each warrant if granted for services.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock"><p id="xdx_899_eus-gaap--ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_z1wJP62NylF4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes warrant activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BA_zmWowKLiH7td" style="display: none">Schedule of Warrant Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Number of Warrants</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iS_c20220101__20220331_zINttDYfthV3" title="Number of Warrants Outstanding, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">526,281</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_iS_c20220101__20220331_zaEjjCFGB8If" title="Weighted Average Exercise Price, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">8.15</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iS_c20220101__20220331_zAMBLeDQI2xc" title="Weighted Average Fair Value, Beginning" style="padding-bottom: 2.5pt; width: 12%; text-align: right"><ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" contextRef="AsOf2021-12-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.01</ix:nonFraction></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 12%; text-align: right"><span id="xdx_901_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zXxfhiYJ8YQj" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:duryear" name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1">4.7</ix:nonNumeric></span></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_c20220101__20220331_zFTwFSliwhhb" title="Number of Warrants Outstanding, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0838">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zOtZnFemB6X9" title="Weighted Average Exercise Price, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0840">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_z8woLIlZ5ZZb" title="Weighted Average Fair Value, Granted" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0842">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_iN_di_c20220101__20220331_zwxKLvtGG0Z4" title="Number of Warrants Outstanding, Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0844">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_z5XhppworVa7" title="Weighted Average Exercise Price, Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0846">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_c20220101__20220331_zI1ZFD4Jam0g" title="Weighted Average Fair Value, Expired" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0848">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_c20220101__20220331_z0igDcUrLtCg" title="Number of Warrants Outstanding, Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0850">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zSDpvx9C9ii6" title="Weighted Average Exercise Price, Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0852">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_znqvowCE0we1" title="Weighted Average Fair Value, Forfeited/Cancelled" style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0854">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_iN_di_c20220101__20220331_zUDzI34kvrZi" title="Number of Warrants Outstanding, Exercised" style="border-bottom: Black 1pt solid; text-align: right">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">50,000</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_c20220101__20220331_zi3iWflCO9Kc" title="Weighted Average Exercise Price, Exercised" style="padding-bottom: 1pt; text-align: right"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.00</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zCkH6fj1orj5" title="Weighted Average Fair Value, Exercised" style="padding-bottom: 1pt; text-align: right"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.22</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iE_c20220101__20220331_zUIDeoF7zjq5" title="Number of Warrants Outstanding, Ending" style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">476,281</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_989_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_iE_c20220101__20220331_zi0ar9QRWgNe" title="Weighted Average Exercise Price, Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">8.80</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iE_c20220101__20220331_zKatffPbVt73" title="Weighted Average Fair Value, Ending" style="padding-bottom: 2.5pt; text-align: right"><ix:nonFraction name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.82</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90F_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_dtY_c20220101__20220331_zujqIlxFtNni" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Ending"><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" format="ixt-sec:duryear" name="CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2">4.8</ix:nonNumeric></span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>


</ix:nonNumeric><p id="xdx_8AD_zVsjyVbN7idg" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 13; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->13<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
intrinsic value of warrants exercised during the three months ended March 31, 2022 and 2021 was approximately $<span id="xdx_905_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zAkC7w0Nbmvi" title="Intrinsic value of warrants exercised"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" contextRef="From2022-01-012022-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">0.3</ix:nonFraction></span> million and $<span id="xdx_908_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20210101__20210331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zkeBUQsXknG" title="Intrinsic value of warrants exercised"><ix:nonFraction name="CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" contextRef="From2021-01-012021-03-31_custom_StockOptionsMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">0</ix:nonFraction></span>, respectively.
The aggregate intrinsic value of outstanding warrants at March 31, 2022 was approximately $<span id="xdx_908_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zKHKKGZnifxl" title="Aggregate intrinsic value of options outstanding"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" contextRef="AsOf2022-03-31_us-gaap_WarrantMember" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">0.1</ix:nonFraction></span> million.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
total number of warrants exercisable at March 31, 2022 are <span id="xdx_90B_ecustom--ClassOfWarrantExercisable_iI_c20220331_zQ0Gkr3LALMh" title="Warrants exercisable"><ix:nonFraction name="CODX:ClassOfWarrantExercisable" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">20,000</ix:nonFraction></span>. The ability to exercise the approximately <span id="xdx_90D_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20220331_zFgoIyvT3tO8" title="Warrants to purchase a common stock"><ix:nonFraction name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">456,000</ix:nonFraction></span> warrants issued
in connection with acquisitions in the prior year is contingent upon the achievement of certain development and revenue milestones on
or before January 1, 2027. There was no unrecognized stock-based compensation expense related to warrants.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Issued for Services</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has issued restricted stock to third parties for services provided. The grant date fair value of the restricted stock granted
is determined using the closing market price of the Company&#8217;s common stock on the grant date with the associated compensation expense
amortized over the vesting period of the stock awards. The Company issued <span id="xdx_907_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20220101__20220331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zj2SYp8VDwg2" title="Number of shares issued for services"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" contextRef="From2022-01-012022-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">0</ix:nonFraction></span> and <span id="xdx_901_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20210101__20210331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zi6LabDAx2Uh" title="Number of shares issued for services"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" contextRef="From2021-01-012021-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">4,290</ix:nonFraction></span> shares of restricted stock for services during
the three months ended March 31, 2022 and 2021, respectively. There was no unrecognized stock-based compensation expense related to restricted
stock issued.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock-Based
Compensation Expense</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfShareBasedCompensationActivityTableTextBlock"><p id="xdx_89D_eus-gaap--ScheduleOfShareBasedCompensationActivityTableTextBlock_zPYBrbJSqFV2" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company recognized stock-based compensation expense related to the types of awards discussed above as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z76fbZFhXxG8" style="display: none">Schedule of Recognized Stock-based Compensation Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zSzyjgXgojKj" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_498_20210101__20210331_zLEHlnmmSMdb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--EmployeeStockOptionMember_ze6yUBk9hx1k" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Options</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2022-01-012022-03-31_us-gaap_EmployeeStockOptionMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">40,874</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2021-01-012021-03-31_us-gaap_EmployeeStockOptionMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">76,672</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsQ7WzlCG6c3" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Restricted stock units</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,334,223</ix:nonFraction></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2021-01-012021-03-31_us-gaap_RestrictedStockUnitsRSUMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,396,440</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--StockCompensationPlanMember_zm2AWY00LFua" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Stock</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0892">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2021-01-012021-03-31_us-gaap_StockCompensationPlanMember" format="ixt:numdotdecimal" decimals="0" unitRef="USD">39,900</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AllocatedShareBasedCompensationExpense_zeoC4gLwIlK9" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt; text-align: left">Total stock-based compensation expense</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,375,097</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,513,012</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AB_zmSgsxVv7dqd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:IncomeTaxDisclosureTextBlock"><p id="xdx_80E_eus-gaap--IncomeTaxDisclosureTextBlock_zppyCcVYXcO" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
9 &#8211; <span id="xdx_823_zf2PBTQeSRoj">Income Taxes</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, the Company recognized expense from income taxes of $<span id="xdx_908_eus-gaap--IncomeTaxExpenseBenefit_c20220101__20220331_z1tCSpWLmFo7" title="Income tax expense benefit"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,386,087</ix:nonFraction></span>, representing an effective tax
rate of <span id="xdx_900_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_pid_dp_uPure_c20220101__20220331_zPyFA3rZrKqc" title="Effective tax rate"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">10.6</ix:nonFraction></span>%. The Company&#8217;s effective tax rate will generally differ from the U.S. Federal statutory rate of <span id="xdx_90D_eus-gaap--EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_pid_dp_uPure_c20220101__20220331_zWmLJWvwz8Qe" title="Effective federal statutory  tax rate"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">21.0</ix:nonFraction></span>% due to state
taxes, permanent items, and discrete items. For the three months ended March 31, 2021, the Company recognized expense from income taxes
of $<span id="xdx_90F_eus-gaap--IncomeTaxExpenseBenefit_c20210101__20210331_zHYWtUxgSXP3" title="Income tax expense benefit"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2021-01-012021-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,985,640</ix:nonFraction></span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:RelatedPartyTransactionsDisclosureTextBlock"><p id="xdx_805_eus-gaap--RelatedPartyTransactionsDisclosureTextBlock_zy9OByMN4GHl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
10 &#8211; <span id="xdx_823_z8hNhd2P3LZ5">Related Party Transactions</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company acquired the exclusive rights to the CoPrimer technology pursuant to an exclusive license agreement, dated April 2014 (the &#8220;Exclusive
License Agreement&#8221;), between the Company and DNA Logix, Inc., which was assigned to Dr. Brent Satterfield, a former executive officer,
prior to the Company&#8217;s acquisition of DNA Logix, Inc. On March 1, 2017, the Company entered into an amendment to its Exclusive
License Agreement for its Cooperative Primers (&#8220;License&#8221;) technology with Dr. Satterfield. The amendment provides in part
that all accrued royalties under the License cease as of January 1, 2017, and the Company began in January 2017 to pay to Dr. Satterfield
$<span id="xdx_90F_eus-gaap--AccruedRoyaltiesCurrent_iI_pp0p0_c20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z0VdzYJIufjj" title="Accrued royalties"><ix:nonFraction name="us-gaap:AccruedRoyaltiesCurrent" contextRef="AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">700,000</ix:nonFraction></span> of accrued royalties at the rate of $<span id="xdx_905_eus-gaap--PaymentsForRoyalties_c20170101__20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_pp0p0" title="Payment for royalties per month"><ix:nonFraction name="us-gaap:PaymentsForRoyalties" contextRef="From2017-01-012017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">10,000</ix:nonFraction></span> per month. At March 31, 2022 and 2021, the aggregate balance of this related party
liability was $<span id="xdx_90E_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20220331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_zgoU24xJvbxj" title="Due to related party"><ix:nonFraction name="us-gaap:DueToRelatedPartiesCurrentAndNoncurrent" contextRef="AsOf2022-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">0</ix:nonFraction></span> and $<span id="xdx_908_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20210331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z7iPe3fPq6f" title="Due to related party"><ix:nonFraction name="us-gaap:DueToRelatedPartiesCurrentAndNoncurrent" contextRef="AsOf2021-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">120,000</ix:nonFraction></span>, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<ix:exclude><!-- Field: Page; Sequence: 14; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->14<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page --></ix:exclude>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:LesseeOperatingLeasesTextBlock"><p id="xdx_80C_eus-gaap--LesseeOperatingLeasesTextBlock_zPEbg8C0gI9k" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
11 &#8211; <span id="xdx_826_zSmjfgkGNaak">Leases</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company leases office space under a non-cancelable operating lease and leases cancellable with one month notice. The Company expenses
the cancellable leases in the period incurred in accordance with the practical expedient elected. As such, one lease makes up the entirety
of the right-of-use asset and lease liability disclosed.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:LeaseCostTableTextBlock"><p id="xdx_89B_eus-gaap--LeaseCostTableTextBlock_zhGVF0ucspb4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, components of lease expense are summarized as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B4_zouiYmOacxib" style="display: none">Schedule
of Lease Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_495_20220101__20220331_z6tVJLHMb66l" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--OperatingLeaseCost_maLCz2lp_zH9otZYmiV92" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 72%; text-align: left">Operating lease costs</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 24%; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseCost" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">86,588</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--ShortTermLeaseCost_maLCz2lp_z0BHr5iP7Dwf" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Short-term lease costs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:ShortTermLeaseCost" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">76,080</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--LeaseCost_iT_mtLCz2lp_zrKTVxoTGlc7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease costs</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LeaseCost" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">162,668</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A8_z4RdnrnG9Vse" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Short-term
lease costs under month-to-month lease agreements are paid to related parties.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="CODX:ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock"><p id="xdx_896_ecustom--ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_zVVzrDGvgdsf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, the maturities of the Company&#8217;s lease liabilities are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_zUJ5ZslRfQX1" style="display: none">Schedule
of Maturities on Company Lease Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331_zBhZuJRG2BR2" style="border-bottom: Black 1pt solid; font-weight: bold"><p style="text-align: center; margin-top: 0; margin-bottom: 0">Year Ending</p>
                                              <p style="text-align: center; margin-top: 0; margin-bottom: 0">December 31,</p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_iI_maLOLLPz8za_zhHwGPyV3gdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%">2022 (remainder)</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">221,350</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_iI_maLOLLPz8za_zLFPq8utmS88" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">303,059</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_iI_maLOLLPz8za_zDoXm5VHYgdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2024</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,774</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearThree_iI_maLOLLPz8za_z15HGB0gFQv5" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2025</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0936">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearFour_iI_maLOLLPz8za_zBWq2EvaX9C9" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2026</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0938">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_ecustom--LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_iI_maLOLLPz8za_zhoLnWbBfXpa" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Thereafter</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0940">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDue_iTI_mtLOLLPz8za_zEuyMBoF1m2g" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease payments</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">575,183</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_iI_zBlcdvQfROwh" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: imputed interest</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">16,212</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiability_iI_zzYB8uOuq2r3" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Present value of operating lease liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseLiability" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">558,971</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--OperatingLeaseLiabilityCurrent_iI_zCddX53lu3fi" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: current portion</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">283,299</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiabilityNoncurrent_iI_zVaNJB2rcYo4" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Long-term portion</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">275,672</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8A2_zeNKcpFpfg2i" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="CODX:ScheduleOfOperatingLeaseTableTextBlock"><p id="xdx_89C_ecustom--ScheduleOfOperatingLeaseTableTextBlock_z2pxsh2kbXMk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Other
information related to operating leases was as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B0_zcoHjjw4IjUj" style="display: none">Schedule
of Other Information Related to Operating Lease</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20220101__20220331_zsSIqJQrcOkd" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--OperatingLeasePayments_zpgMXeWO2Xme" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%; text-align: left">Cash paid for operating leases included in operating cash flows</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeasePayments" contextRef="From2022-01-01to2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">154,882</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Remaining lease term of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_900_eus-gaap--OperatingLeaseWeightedAverageRemainingLeaseTerm1_iI_dtY_c20220331_zuSeRQcIqvPb" title="Remaining lease term of operating leases"><ix:nonNumeric contextRef="AsOf2022-03-31" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1">2</ix:nonNumeric></span>
years</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Discount rate of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--OperatingLeaseWeightedAverageDiscountRatePercent_iI_pid_dp_uPure_c20220331_zON7zcW1s8cl" title="Discount rate of operating leases" style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="INF" scale="-2" unitRef="Pure">3.1</ix:nonFraction></td><td style="text-align: left">%</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AC_zeUrWUVup369" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock"><p id="xdx_896_eus-gaap--LesseeOperatingLeaseLiabilityMaturityTableTextBlock_zFGBOl3587Fi" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
previously disclosed in our Annual Report on Form 10-K for the year ended December 31, 2021, future lease payments under ASC 840 for
operating leases were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z4qq0XhUJzac" style="display: none">Schedule of Future Minimum Lease Payments</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-weight: bold">Year Ending December 31,</td><td style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49E_20220331_zCSh6K2O3S73" style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_iI_maOLFMPz5Lk_z2Nsfjwe9kN" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%; text-align: left">2022</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">293,595</ix:nonFraction></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueCurrent_iI_maOLFMPz5Lk_zzEsZPvLCn8a" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><ix:nonFraction name="us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">303,059</ix:nonFraction></td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueInTwoYears_iI_maOLFMPz5Lk_zVhhO38N9Mid" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">2024</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,774</ix:nonFraction></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDue_iTI_mtOLFMPz5Lk_zus8e4KpaRV4" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total lease payments</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><ix:nonFraction name="us-gaap:OperatingLeasesFutureMinimumPaymentsDue" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="0" unitRef="USD">647,428</ix:nonFraction></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

</ix:nonNumeric><p id="xdx_8AD_zi80tmDcFWj8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock"><p id="xdx_804_eus-gaap--CommitmentsAndContingenciesDisclosureTextBlock_zhotIR4Z9cd4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
12 &#8211;<span id="xdx_82A_z1MdzimMC083"> Commitments and Contingencies</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Litigation</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Liabilities
for loss contingencies arising from claims, assessments, litigation, fines, and penalties and other sources are recorded when it is probable
that a liability has been incurred and the amount can be reasonably estimated. Legal costs incurred in connection with loss contingencies
are expensed as incurred.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company is currently a defendant in five different securities class action complaints that were filed by certain stockholders of the
Company claiming that the Company promulgated false and misleading press releases to increase the price of our stock to improperly benefit
the officers and directors of the Company. The plaintiffs demand compensatory damages sustained as a result of the Company&#8217;s alleged
wrongdoing in an amount to be proven at trial. The Company believes these lawsuits are without merit and intends to defend the cases
vigorously. The Company is unable to estimate a range of loss, if any, that could result were there to be an adverse final decision in
these cases. As of the date of this report, the Company does not believe it is probable that these cases will result in an unfavorable
outcome; however, if an unfavorable outcome were to occur in these cases, it is possible that the impact could be material to the Company&#8217;s
results of operations in the period(s) in which any such outcome becomes probable and estimable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:ScheduleOfStockholdersEquityTableTextBlock"><p id="xdx_807_eus-gaap--ScheduleOfStockholdersEquityTableTextBlock_zkgBojtQKENl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
13 &#8211; <span id="xdx_827_zp7H4K9bbtt9">Share Repurchase Program</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span>&#160;</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
March 2022, the Company&#8217;s Board of Directors authorized a share repurchase program that would allow the Company to repurchase up
to $<span id="xdx_900_eus-gaap--StockRepurchaseProgramAuthorizedAmount1_iI_pn5n6_c20220331_z6xGkHaVHpM7" title="Stock repurchase program authorized amount"><ix:nonFraction name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" contextRef="AsOf2022-03-31" format="ixt:numdotdecimal" decimals="-5" scale="6" unitRef="USD">30.0</ix:nonFraction></span> million of CODX common stock. The repurchase program does not obligate the Company to acquire any particular amount of common
shares, and the repurchase program may be suspended or discontinued at any time at the Company&#8217;s discretion. The timing and amount
of any share repurchases under the share repurchase program will be determined by Co-Diagnostics&#8217; management at its discretion
based on ongoing assessments of the capital needs of the business, the market price of the Company&#8217;s common stock, corporate and
regulatory requirements, and general market conditions.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has not made any repurchases under the share purchase program since its implementation.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

</ix:nonNumeric><ix:nonNumeric contextRef="From2022-01-01to2022-03-31" escape="true" name="us-gaap:SubsequentEventsTextBlock"><p id="xdx_80A_eus-gaap--SubsequentEventsTextBlock_zZ26vTghGtkh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
14 &#8211; <span id="xdx_82D_zKe8NmtZ1Yuj">Subsequent Events</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company evaluated subsequent events pursuant to ASC Topic 855 and has determined that there are no events that need to be reported.</span></p>

</ix:nonNumeric><p id="xdx_815_zZJwEo2PzmR4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 15; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->15<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_008"></span>Item
2. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Cautionary
Note Regarding Forward-Looking Statements</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">This
Quarterly Report on Form 10-Q contains &#8220;forward-looking statements&#8221; that involve risks and uncertainties. All statements
other than statements of historical fact contained in this Quarterly Report and the documents incorporated by reference herein, including
statements regarding future events, our future financial performance, business strategy, and plans and objectives of management for future
operations, are forward-looking statements. We have attempted to identify forward-looking statements by terminology including &#8220;anticipates,&#8221;
&#8220;believes,&#8221; &#8220;can,&#8221; &#8220;continue,&#8221; &#8220;could,&#8221; &#8220;estimates,&#8221; &#8220;expects,&#8221;
&#8220;intends,&#8221; &#8220;may,&#8221; &#8220;plans,&#8221; &#8220;potential,&#8221; &#8220;predicts,&#8221; &#8220;should,&#8221;
or &#8220;will&#8221; or the negative of these terms or other comparable terminology. Although we do not make forward looking statements
unless we believe we have a reasonable basis for doing so, we cannot guarantee their accuracy. These statements are only predictions
and involve known and unknown risks, uncertainties and other factors and the documents incorporated by reference herein, which may affect
our or our industry&#8217;s actual results, levels of activity, performance or achievements expressed or implied by these forward-looking
statements. Moreover, we operate in a highly regulated, very competitive, and rapidly changing environment. New risks emerge from time
to time, and it is not possible for us to predict all risk factors, nor can we address the impact of all factors on our business or the
extent to which any factor, or combination of factors, may cause our actual results to differ materially from those contained in any
forward-looking statements.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
have based these forward-looking statements largely on our current expectations and projections about future events and financial trends
that we believe may affect our financial condition, results of operations, business strategy, short term and long-term business operations,
and financial needs. These forward-looking statements are subject to certain risks and uncertainties that could cause our actual results
to differ materially from those reflected in the forward-looking statements. Factors that could cause or contribute to such differences
include, but are not limited to, those discussed in this Quarterly Report, and in particular, the risks discussed below and under the
heading &#8220;Risk Factors&#8221; in other documents we file with the SEC. The following discussion should be read in conjunction with
the Annual Report on Form 10-K for the fiscal year ended December 31, 2021, filed with the SEC on March 24, 2022, and the audited financial
statements and notes included therein.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">You
should not place undue reliance on any forward-looking statement, each of which applies only as of the date of this Quarterly Report.
Except as required by law, we undertake no obligation to update or revise publicly any of the forward-looking statements after the date
of this Quarterly Report to conform our statements to actual results or changed expectations.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">You
are advised, however, to consult any further disclosures we make on related subjects in our periodic and current reports filed with the
SEC. You should understand that it is not possible to predict or identify all risk factors. Consequently, you should not consider this
list to be a complete set of all potential risks or uncertainties.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Important
factors that could cause actual results to differ materially from those in the forward-looking statements include, without limitation:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">the
    results of clinical trials and the regulatory approval process;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">market
    acceptance of any products that may be approved for commercialization;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">our
    ability to protect our intellectual property rights;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">the
    impact of any infringement actions or other litigation brought against us;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">competition
    from other providers and products;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">our
    ability to develop and commercialize new and improved products and services;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">changes
    in government regulation;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#9679;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">and
    other factors (including the risks contained in the section entitled &#8220;Risk Factors&#8221; in other documents we file with the
    SEC) relating to our industry, our operations and results of operations.</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Should
one or more of these risks or uncertainties materialize, or should the underlying assumptions prove incorrect, actual results may differ
significantly from those anticipated, believed, estimated, expected, intended or planned.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 33.75pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Factors
or events that could cause our actual results to differ may emerge from time to time, and it is not possible for us to predict all of
them. We cannot guarantee future results, levels of activity, performance or achievements. Except as required by applicable law, including
the securities laws of the United States, we do not intend to update any of the forward-looking statements to conform these statements
to actual results.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 33.75pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
used in this Quarterly Report, the terms &#8220;we&#8221;, &#8220;us&#8221;, &#8220;our&#8221;, and &#8220;Co-Diagnostics&#8221; means
Co-Diagnostics, Inc., a Utah corporation and its consolidated subsidiaries (the &#8220;Company&#8221;), unless otherwise indicated.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Executive
Overview</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following management&#8217;s discussion and analysis of financial condition and results of operations describes the principal factors
affecting the results of our operations, financial condition, and changes in financial condition. This discussion should be read in conjunction
with the accompanying unaudited financial statements and notes thereto included elsewhere in this report. The information contained in
this discussion is subject to a number of risks and uncertainties. We urge you to review carefully the section of this report entitled
&#8220;<b>Cautionary Note Regarding Forward-Looking Statements</b>&#8221; for a summary of the risks and uncertainties associated with
an investment in our securities.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 16; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->16<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Business
Overview</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Co-Diagnostics,
Inc., a Utah corporation (the &#8220;Company&#8221;, &#8220;Co-Dx&#8221; or &#8220;CODX&#8221;), develops, manufactures and sells
reagents used for diagnostic tests that function via the detection and/or analysis of nucleic acid molecules (DNA or RNA), including
robust and innovative molecular tools for detection of infectious diseases, liquid biopsy for cancer screening, and agricultural applications.
In connection with the sale of our tests we may sell diagnostic equipment from other manufacturers as self-contained lab systems (which
we refer to as the &#8220;MDx Device&#8221;). We are also developing a unique, groundbreaking portable PCR testing platform (the
&#8220;Co-Dx PCR home testing platform&#8221;) designed to bring affordable, reliable gold-standard polymerase chain reaction (&#8220;PCR&#8221;)
to patients in point-of-care and even at-home settings.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
diagnostics systems enable dependable, low-cost, molecular testing for organisms and genetic diseases by automating historically complex
procedures in both the development and administration of tests. CODX&#8217;s technical advance involves a novel, patented approach to
PCR test design of primer and probe structure (&#8220;CoPrimers&#8482;&#8221;) that eliminates one of the key vexing issues of PCR amplification,
the exponential growth of primer-dimer pairs (false positives and false negatives) which adversely interferes with identification of
the target DNA/RNA.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
believe our proprietary molecular diagnostics technology is paving the way for innovation in disease detection and life sciences research
through our enhanced detection of genetic material. For various reasons, including owning our own platform, we believe we will be able
to accomplish this faster and more economically, allowing for significant margins while still positioning the Company to be a low-cost
provider of molecular diagnostics and screening services.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
addition, continued development has demonstrated the unique properties of our CoPrimers&#8482; technology that we believe makes it ideally
suited for a variety of applications where specificity is key to optimal results, including multiplexing several targets, enhanced Single
Nucleotide Polymorphism (&#8220;SNP&#8221;) detection and enrichment for next generation sequencing.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
scientists use the complex mathematics of DNA/RNA test design to engineer and optimize DNA/RNA tests and to automate algorithms that
rapidly screen millions of possible options to pinpoint the optimum design. Dr. Brent Satterfield, our founder, developed the Company&#8217;s
intellectual property consisting of the predictive mathematical algorithms and patented molecular structure used in the testing process,
which together represent a major advance in PCR testing systems. CODX technologies are now protected by more than 20 granted or pending
US and foreign patents, as well as certain trade secrets and copyrights. Ownership of our proprietary platform permits us the advantage
of avoiding payment of patent royalties required by other PCR test systems, which may allow the sale of diagnostic PCR tests at a lower
price than competitors, while enabling us to maintain profit margins.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
may either sell or lease the MDx Device to labs and diagnostic centers, through sale or lease agreements, and sell the reagents that
comprise our proprietary tests to those laboratories and testing facilities.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
proprietary test design process involves identifying the optimal locations on the target genes for amplification and pair the locations
with the optimized primer and probe structure to achieve outputs that meet the design input requirements identified from market research.
This is done by following planned and documented processes, procedures and testing. In other words, we use the data resulting from our
tests to verify whether we succeeded in designing what we intended at the outset. Verification is a series of testing that concludes
that the product is ready to proceed to validation in an evaluation either in our laboratory or in an independent laboratory setting
using initial production tests to confirm that the product as designed meets the user needs.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Using
our proprietary test design system and proprietary reagents, we have designed and obtained regulatory approval in the European Community
and in India to sell PCR diagnostic tests for the detection of COVID-19, influenza, tuberculosis, hepatitis B and C, human papillomavirus,
malaria, chikungunya, dengue, and the zika virus. In the United States, CODX has obtained Emergency Use Authorization (&#8220;EUA&#8221;)
for its Logix Smart&#8482; COVID-19 detection test from the Food and Drug Administration, or FDA, and sells that test to qualified labs.
In addition, our COVID-19 detection test and certain of our other suite of COVID-19 products have been approved for sale in countries
such as the United Kingdom, Australia and Mexico by the regulatory bodies in those countries and have been registered for sale in many
more countries.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
addition to testing for infectious disease, the technology lends itself to identifying any section of a DNA or RNA strand that describe
any type of genetic trait, which creates a number of significant applications. We, in conjunction with our customers, are active in designing
and licensing tests that identify genetic traits in plant and animal genomes. We also have three multiplexed tests developed to test
mosquitos for the identification of diseases carried by the mosquitos to enable municipalities to concentrate their efforts in managing
mosquito populations on the specific areas known to be breeding the mosquitos that carry deadly viruses.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Because
we believe that testing for COVID-19 is going to be a consideration for public health worldwide even after the current pandemic has subsided,
we have initiated the Co-Dx PCR home testing platform to facilitate frequent testing in homes, schools, businesses, and
the hospitality industry. We believe this may be accomplished through the development of a low-cost testing device, easy to use by non-professionals,
that can provide PCR test results in around 30 minutes. The initial project built on this platform, an at-home and point-of-care COVID-19
PCR test, was ultimately facilitated by our development of a saliva or nasal swab-based PCR test that does not require the RNA/DNA extraction.
While the final result is believed to be approximately equivalent to those processed by a high-complexity clinical laboratory, it has
the advantages of increased speed and ease of handling thanks to lyophilization (or freeze-drying) of our testing reagents to allow for
stability at room temperatures.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
February 15, 2021, we engaged the services of a group of professionals at Idaho Molecular, Inc. (IdMo) and Advanced Conceptions, Inc
(ACI) with the expertise to develop the hardware for such a device using our CoPrimers&#8482; as the reagent chemistry. On December 22,
2021, we announced that we would be acquiring IdMo and ACI, and on December 31, 2021, we completed the acquisitions, along with all existing
and future assets and intellectual property related to the platform and device. It is expected that the device and test will be available
to homes, schools, offices, and the travel industry among other locations at a cost that will allow screening frequently to prevent spread
of the COVID-19 virus in the future. The device would also be available to test for other pathogens detectable through saliva or other
samples as we develop those tests and offer them to the marketplace. All such tests will be subject to regulatory approval.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 17; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->17<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>RESULTS
OF OPERATIONS</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>The
Three Months Ended March 31, 2022 Compared to the Three Months ended March 31, 2021</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Revenues</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, we generated revenues of $22,699,044, compared to revenues of $20,024,769 for the three months
ended March 31, 2021. The increase in revenue of $2,674,275 was primarily due to sales of our Logix Smart&#8482; COVID-19 test developed
in response to the current COVID-19 pandemic. Of the total revenue in the three months ended March 31, 2022, $364,950 related to the
sale of third party manufactured equipment and consumables, which we sourced and sold to customers to facilitate the sales of our COVID-19
test compared to $266,515 of revenue from the sales of such equipment for the three months ended March 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Cost
of Revenues</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
recorded cost of revenues of $3,281,951 for the three months ended March 31, 2022, compared to $3,272,565 for the three months ended
March 31, 2021. The increase in revenues combined with a reduction of product production costs resulted in improved gross margin. Of
the total cost of sales during the three months ended March 31, 2022, $374,683 was from equipment sold to our customers compared to $202,636
for equipment sold to customers for the three months ended March 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Expenses</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 33.75pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
incurred total operating expenses of $9,592,934 for the three months ended March 31, 2022, compared to total operating expenses of $6,417,303
for the three months ended March 31, 2021. The increase in operating expenses was due to the increase in business activities experienced
as a result of our increase in revenue, increased third party sales commissions reflected in sales and marketing, and increased investment
in research and development.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
sales and marketing expenses for the three months ended March 31, 2022 were $2,652,148, compared to $1,197,546 for the three months ended
March 31, 2021. The increase was primarily a result of increased third-party sales commissions, advertising and promotional expenses,
including tradeshows and related travel, and increased stock-based compensation due to the growth in revenue.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">General
and administrative expenses decreased from $2,935,689 for the three months ended March 31, 2021 to $2,922,195 for the three months ended
March 31, 2022. The slight decrease in general and administrative expenses was primarily due to decreased stock-based compensation expense,
partially offset by increased activity to support the growth of our business, including increased insurance expense and professional
and advisory fees related to our recent acquisitions.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
research and development expenses increased from $2,217,063 for the three months ended March 31, 2021 to $3,771,327 for the three months
ended March 31, 2022. The primary increase in expenses was a result of increases in personnel expenses related to our acquisitions of
IdMo and ACI on December 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 18; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->18<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Other
Income (Expense)</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022 we had total other income of $3,276,523, compared to total other expense of $450,286 for the three
months ended March 31, 2021. The increase was due primarily to a change in the fair value of contingent consideration liabilities recorded
in conjunction with the acquisitions of IdMo and ACI.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Net
Income</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
realized net income for the three months ended March 31, 2022 of $11,714,595, compared with net income for the three months ended March
31, 2021 of $7,898,975. The increase in net income was primarily the result of an increase in operating expenses, offset by an increase
of product revenues and resulting margins from those sales, as well as changes in the fair value of acquisition contingencies. Additionally,
we recorded income tax expense of $1,386,087 for the three months ended March 31, 2022, compared to $1,985,640 for the three months ended
March 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Liquidity
and Capital Resources</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">At
March 31, 2022, we had cash and cash equivalents of $97,421,739 that could readily be converted into cash if needed. Additionally, our
total current assets of March 31, 2022, were $125,338,797 compared to total current liabilities of $13,020,695.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Net
cash provided by operating activities during the three months ended March 31, 2022 was $7,805,838, compared to $12,269,955 for the three
months ended March 31, 2021. The decrease in cash from operating activities was primarily due to increased operating expenses, increases
in inventory, and the effects of non-cash items.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
received $858,666 of cash from investing activities during the three months ended March 31, 2022, primarily from maturities of marketable
investments offset by purchases of property and equipment, compared to cash from investing activities of $2,393,244 during the three
months ended March 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Net
cash provided by financing activities was $150,001 for the three months ended March 31, 2022 realized from the exercise of options and
warrants, compared to $148,981 for the same period in the prior year.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Since
commencing sales of our Logix Smart&#8482; COVID-19 test in March 2020, we have used our cash generated from those sales to fund the
increase in our inventories and receivables and pay our operating expenses. We have increased our work force primarily in the area of
research and development to complete development of additional tests to enable us to use our distributor network to sell other products
throughout the world and remain profitable in the future. In March 2022 our board of directors authorized repurchasing up to $30.0 million
of the company&#8217;s outstanding common stock. We have no obligation to repurchase any shares under the repurchase program and may
suspend or discontinue it at any time without prior notice. We have not repurchased any of our outstanding common shares under the repurchase
program.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
believe that our existing capital resources and the cash generated from future sales will be sufficient to meet our projected operating
requirements for the next 12 months. However, our available capital resources may be consumed more rapidly than currently expected and
we may need or want to raise additional financing for strategic opportunities.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">If
needed, we expect additional investment capital to come from (i) additional issuances of our common stock with existing and new investors
or (ii) the private placement of other securities with investors similar to those that have provided funding in the past. We may not
be able to secure such financing in a timely manner or on favorable terms, if at all.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 19; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->19<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
foregoing estimates, expectations and forward-looking statements are subject to change as we make strategic operating decisions from
time to time and as our revenue and expenses fluctuate from period to period.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Off-Balance
Sheet Arrangements</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
have no off-balance sheet arrangements.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_009"></span>Item
3. Quantitative and Qualitative Disclosures about Market Risk</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Not
required under Regulation S-K for &#8220;smaller reporting companies.&#8221;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_010"></span>Item
4. Controls and Procedures</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Evaluation
of Disclosure Controls and Procedures</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
maintain &#8220;disclosure controls and procedures,&#8221; as defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act that are
designed to ensure that information required to be disclosed by a company in the reports that it files or submits under the Exchange
Act is recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms. Disclosure
controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed
by a company in the reports that it files or submits under the Exchange Act is accumulated and communicated to the company&#8217;s management,
including its principal executive and principal financial officers, as appropriate to allow timely decisions regarding required disclosure.
Our management, with the participation of our Chief Executive Officer and our Chief Financial Officer, evaluated the effectiveness of
our disclosure controls and procedures as of March 31, 2022. Based on the evaluation of our disclosure controls and procedures as of
March 31, 2022, our Chief Executive Officer and Chief Financial Officer concluded that, as of such date, our disclosure controls were
effective.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; background-color: white"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Changes
in Internal Control over Financial Reporting</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">There
have been no changes in our internal control over financial reporting during the three months ended March 31, 2022, that have materially
affected or, are reasonably likely to materially affect, our internal control over financial reporting.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 20; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->20<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_011"></span>PART
II &#8211; OTHER INFORMATION</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_012"></span>Item
1. Legal Proceedings</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">There
have been no material developments to the legal proceedings previously disclosed under Part I. Item 3 of our Annual Report on Form 10-K
for the fiscal year ended December 31, 2021.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">From
time to time, we may become involved in litigation relating to claims arising out of our operations in the normal course of business.
Although we have received inquiries from FINRA, NASDAQ and the SEC, to which we have responded, to the best of our knowledge, no governmental
authority is contemplating any proceeding to which we are a party or to which any of our properties or businesses are subject, which
would reasonably be likely to have a material adverse effect on the Company.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_013"></span>Item
1A. Risk Factors.</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Not
required under Regulation S-K for &#8220;smaller reporting companies.&#8221;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_014"></span>Item
2. Unregistered Sales of Equity Securities and Use of Proceeds</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">None.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Dividends</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
have never declared or paid any cash dividends on our capital stock. The payment of dividends on our common stock in the future will
depend on our earnings, capital requirements, operating and financial condition and such other factors as our Board of Directors may
consider appropriate. We currently expect to use all available funds to finance the future development and expansion of our business
and do not anticipate paying dividends on our common stock in the foreseeable future.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Pursuant
to Section <span style="background-color: white">16-10a-640 of the Utah Revised Business Corporation Act, no distribution may be made
if, after giving it effect:</span></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 0.25in; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 0.5in; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(a)</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">the
    corporation would not be able to pay its debts as they become due in the usual course of business; or</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(b)</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">the
    corporation&#8217;s total assets would be less than the sum of its total liabilities plus, unless the articles of incorporation permit
    otherwise, the amount that would be needed, if the corporation were to be dissolved at the time of the distribution, to satisfy the
    preferential rights upon dissolution of shareholders whose preferential rights are superior to those receiving the distribution.</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Share
Repurchase Program</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
March 2022 our board of directors authorized repurchasing up to $30.0 million of the company&#8217;s outstanding common stock. We did
not repurchase any of our outstanding common shares under the repurchase program during the first quarter ending March 31, 2022.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_015"></span>Item
3. Defaults Upon Senior Securities</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">None.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_016"></span>Item
4. Mine Safety Disclosures</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Not
applicable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_017"></span>Item
5. Other Information</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">None.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 21; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->21<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_018"></span>Item
6. Exhibits</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Exhibit
Index</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">(a)
Exhibits</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="border-bottom: Black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 0.65in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Exhibit</b></span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; padding-bottom: 1pt; width: 0.1in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="border-bottom: Black 1.5pt solid; text-align: justify; font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Number
    Description</b></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">3.1</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="https://www.sec.gov/Archives/edgar/data/1692415/000149315222008865/ex3-1.htm" style="-sec-extract: exhibit">Amended and Restated Bylaws of Co-Diagnostics, Inc. (Incorporated by reference herein from Form 8-K (Exhibit 3.1), filed 04/01/22, SEC File No. 001-38148.</a> </span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">31.1*</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="ex31-1.htm">Certification of Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">31.2*</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="ex31-2.htm">Certification of Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">32.1*</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="ex32-1.htm">Certification of Chief Executive Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</a></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">32.2*</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><a href="ex32-2.htm">Certification of Chief Financial Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</a></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.INS</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Instance Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.SCH</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Taxonomy Extension Schema Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.CAL</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Taxonomy Extension Calculation Linkbase Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.DEF</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Taxonomy Extension Definition Linkbase Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.LAB</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Taxonomy Extension Label Linkbase Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">101.PRE</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inline
    XBRL Taxonomy Extension Presentation Linkbase Document</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">104</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Cover
    Page Interactive Data File</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">*
Filed herewith.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 22; Value: 2 -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->22<!-- Field: /Sequence --></td></tr></table></div>
    <div style="break-before: page; margin-top: 6pt"><p style="margin: 0pt">&#160;</p></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span id="a_019"></span>SIGNATURES</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Pursuant
to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by
the undersigned thereunto duly authorized.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"></span></p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 50%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; width: 50%; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>CO-DIAGNOSTICS, INC.</b></span></td>
    </tr>
</table>

<p style="margin: 0">&#160;</p>

<table cellspacing="0" cellpadding="0" style="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif; width: 50%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify; width: 5%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</span></td>
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; text-align: justify; width: 45%"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><i>/s/
    Dwight H. Egan</i></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Name:</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Dwight
    H. Egan</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Title:</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Executive Officer, President and Principal Executive Officer</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</span></td>
    <td style="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><i>/s/
    Brian Brown</i></span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Name:</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Brian
    Brown</span></td></tr>
  <tr style="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <td style="font: 10pt Times New Roman, Times, Serif"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Title:</span></td>
    <td style="font: 10pt Times New Roman, Times, Serif; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Financial Officer and Principal Financial and Accounting Officer</span></td></tr>
  </table>
<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>


<!-- Field: Page; Sequence: 23; Options: Last -->
    <div style="border-bottom: Black 1.5pt solid; margin-bottom: 6pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->23<!-- Field: /Sequence --></td></tr></table></div>
    <!-- Field: /Page -->

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>
</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>ex31-1.htm
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>EXHIBIT
31.1</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>CERTIFICATION
OF THE CHIEF EXECUTIVE OFFICER</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>PURSUANT
TO SECTION 302 OF THE SARBANES OXLEY ACT OF 2002</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>AND
RULE 13a-14 OF THE EXCHANGE ACT OF 1934</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">I,
Dwight H. Egan, certify that:</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">1.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">I
    have reviewed this Quarterly Report on Form 10-Q of Co-Diagnostics, Inc.;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">2.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Based
    on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary
    to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to
    the period covered by this report;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">3.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Based
    on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material
    respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in
    this report;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">4.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    registrant&rsquo;s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures
    (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange
    Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">a.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Designed
    such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision,
    to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others
    within those entities, particularly during the period in which this report is being prepared;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">b.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Designed
    such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our
    supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements
    for external purposes in accordance with generally accepting accounting principles;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">c.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Evaluated
    the effectiveness of the registrant&rsquo;s disclosure controls and procedures and presented in this report our conclusions about
    the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation;
    and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">d.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Disclosed
    in this report any change in the registrant&rsquo;s internal control over financial reporting that occurred during the registrant&rsquo;s
    most recent fiscal quarter (the registrant&rsquo;s fourth fiscal quarter in the case of an annual report) that has materially affected,
    or is reasonably likely to materially affect, the registrant&rsquo;s internal control over financial reporting.</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">5.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    registrant&rsquo;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial
    reporting, to the registrant&rsquo;s auditors and the audit committee of the registrant&rsquo;s board of directors (or persons performing
    the equivalent functions):</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">a.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">All
    significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are
    reasonably likely to adversely affect the registrant&rsquo;s ability to record, process, summarize and report financial information;
    and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">b.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Any
    fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&rsquo;s
    internal control over financial reporting.</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 3%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</FONT></TD>
    <TD STYLE="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 47%; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><I>/s/
    Dwight H. Egan</I></FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Dwight
    H. Egan</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Executive Officer, President and Principal Executive Officer</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>


<!-- Field: Page; Sequence: 1; Options: Last -->
    <DIV STYLE="margin-bottom: 6pt; border-bottom: Black 1.5pt solid"><TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; width: 100%; font-size: 10pt"><TR STYLE="vertical-align: top; text-align: left"><TD STYLE="width: 100%">&nbsp;</TD></TR></TABLE></DIV>
    <!-- Field: /Page -->

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>ex31-2.htm
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>EXHIBIT
31.2</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>CERTIFICATION
OF THE CHIEF FINANCIAL OFFICER</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>PURSUANT
TO SECTION 302 OF THE SARBANES OXLEY ACT OF 2002</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>AND
RULE 13a-14 OF THE EXCHANGE ACT OF 1934</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">I,
Brian Brown, certify that:</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">1.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">I
    have reviewed this Quarterly Report on Form 10-Q of Co-Diagnostics, Inc.;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">2.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Based
    on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary
    to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to
    the period covered by this report;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">3.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Based
    on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material
    respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in
    this report;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">4.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    registrant&rsquo;s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures
    (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange
    Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">a.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Designed
    such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision,
    to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others
    within those entities, particularly during the period in which this report is being prepared;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">b.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Designed
    such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our
    supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements
    for external purposes in accordance with generally accepting accounting principles;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">c.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Evaluated
    the effectiveness of the registrant&rsquo;s disclosure controls and procedures and presented in this report our conclusions about
    the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation;
    and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">d.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Disclosed
    in this report any change in the registrant&rsquo;s internal control over financial reporting that occurred during the registrant&rsquo;s
    most recent fiscal quarter (the registrant&rsquo;s fourth fiscal quarter in the case of an annual report) that has materially affected,
    or is reasonably likely to materially affect, the registrant&rsquo;s internal control over financial reporting.</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">5.</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    registrant&rsquo;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial
    reporting, to the registrant&rsquo;s auditors and the audit committee of the registrant&rsquo;s board of directors (or persons performing
    the equivalent functions):</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD COLSPAN="2" STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">a.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">All
    significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are
    reasonably likely to adversely affect the registrant&rsquo;s ability to record, process, summarize and report financial information;
    and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">b.</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Any
    fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&rsquo;s
    internal control over financial reporting.</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 3%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</FONT></TD>
    <TD STYLE="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 47%; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><I>/s/
    Brian Brown</I></FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Brian
    Brown</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Financial Officer and Principal Financial and Accounting Officer</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>


<!-- Field: Page; Sequence: 1; Options: Last -->
    <DIV STYLE="margin-bottom: 6pt; border-bottom: Black 1.5pt solid"><TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; width: 100%; font-size: 10pt"><TR STYLE="vertical-align: top; text-align: left"><TD STYLE="width: 100%">&nbsp;</TD></TR></TABLE></DIV>
    <!-- Field: /Page -->

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>ex32-1.htm
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>EXHIBIT
32.1</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>CERTIFICATION
OF THE CHIEF EXECUTIVE OFFICER</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>PURSUANT
TO 18 U.S. C. SECTION 1350</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>AS
ADOPTED PURSUANT TO</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>SECTION
906 OF THE SARBANES-OXLEY ACT OF 2002</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
connection with the Quarterly Report of Co-Diagnostics, Inc. (the &ldquo;Company&rdquo;) on Form 10-Q for the period ended March 31,
2022, as filed with the Securities and Exchange Commission on the date hereof, I, Dwight H. Egan, Chief Executive Officer of the Company,
hereby certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my
knowledge:</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(1)</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    Form 10-Q fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(2)</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    information contained in the Form 10-Q fairly presents, in all material respects, the financial condition and results of operations
    of the Company.</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 3%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:
    </FONT></TD>
    <TD STYLE="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 47%; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><I>/s/
    Dwight H. Egan</I></FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Dwight
    H. Egan</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Executive Officer, President and Principal Executive Officer</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>


<!-- Field: Page; Sequence: 1; Options: Last -->
    <DIV STYLE="margin-bottom: 6pt; border-bottom: Black 1.5pt solid"><TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; width: 100%; font-size: 10pt"><TR STYLE="vertical-align: top; text-align: left"><TD STYLE="width: 100%">&nbsp;</TD></TR></TABLE></DIV>
    <!-- Field: /Page -->

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>ex32-2.htm
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: right"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>EXHIBIT
32.2</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>CERTIFICATION
OF THE CHIEF FINANCIAL OFFICER</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>PURSUANT
TO 18 U.S. C. SECTION 1350</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>AS
ADOPTED PURSUANT TO</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: center"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><B>SECTION
906 OF THE SARBANES-OXLEY ACT OF 2002</B></FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
connection with the Quarterly Report of Co-Diagnostics, Inc. (the &ldquo;Company&rdquo;) on Form 10-Q for the period ended March 31,
2022, as filed with the Securities and Exchange Commission on the date hereof, I, Brian Brown, Chief Financial Officer of the Company,
hereby certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my
knowledge:</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 0.25in"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(1)</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    Form 10-Q fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">(2)</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
    information contained in the Form 10-Q fairly presents, in all material respects, the financial condition and results of operations
    of the Company.</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="font: 10pt Times New Roman, Times, Serif; width: 100%; border-collapse: collapse">
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 50%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Date:
    May 12, 2022</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; width: 3%"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">By:</FONT></TD>
    <TD STYLE="border-bottom: black 1.5pt solid; font: 10pt Times New Roman, Times, Serif; width: 47%; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt"><I>/s/
    Brian Brown</I></FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Brian
    Brown</FONT></TD></TR>
  <TR STYLE="font: 10pt Times New Roman, Times, Serif; vertical-align: top">
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></TD>
    <TD STYLE="font: 10pt Times New Roman, Times, Serif; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">Chief
    Financial Officer and Principal Financial and Accounting Officer</FONT></TD></TR>
  </TABLE>
<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>


<!-- Field: Page; Sequence: 1; Options: Last -->
    <DIV STYLE="margin-bottom: 6pt; border-bottom: Black 1.5pt solid"><TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; width: 100%; font-size: 10pt"><TR STYLE="vertical-align: top; text-align: left"><TD STYLE="width: 100%">&nbsp;</TD></TR></TABLE></DIV>
    <!-- Field: /Page -->

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><FONT STYLE="font-family: Times New Roman, Times, Serif; font-size: 10pt">&nbsp;</FONT></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>codx-20220331.xsd
<DESCRIPTION>XBRL SCHEMA FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" ?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.13b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
    <!-- Field: Doc-Info; Name: Misc; Value: 96Mps7xRiXgen8uDanwsWa+EybP9z5Z8+ekhvWB4bQkqfykr5QEizSig+o3mgW0K -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:srt="http://fasb.org/srt/2022" xmlns:srt-types="http://fasb.org/srt-types/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:CODX="http://codiagnostics.com/20220331" elementFormDefault="qualified" targetNamespace="http://codiagnostics.com/20220331">
    <annotation>
      <appinfo>
	<link:roleType roleURI="http://codiagnostics.com/role/Cover" id="Cover">
	  <link:definition>00000001 - Document - Cover</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/BalanceSheets" id="BalanceSheets">
	  <link:definition>00000002 - Statement - Consolidated Balance Sheets (Unaudited)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/BalanceSheetsParenthetical" id="BalanceSheetsParenthetical">
	  <link:definition>00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/StatementsOfOperations" id="StatementsOfOperations">
	  <link:definition>00000004 - Statement - Consolidated Statements of Operations (Unaudited)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/StatementsOfCashFlows" id="StatementsOfCashFlows">
	  <link:definition>00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/StatementsOfStockholdersEquity" id="StatementsOfStockholdersEquity">
	  <link:definition>00000006 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" id="OverviewAndBasisOfPresentation">
	  <link:definition>00000007 - Disclosure - Overview and Basis of Presentation</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" id="SummaryOfSignificantAccountingPolicies">
	  <link:definition>00000008 - Disclosure - Summary of Significant Accounting Policies</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/BusinessCombinations" id="BusinessCombinations">
	  <link:definition>00000009 - Disclosure - Business Combinations</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" id="GoodwillAndIntangibleAssets">
	  <link:definition>00000010 - Disclosure - Goodwill and Intangible Assets</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/FairValueMeasurements" id="FairValueMeasurements">
	  <link:definition>00000011 - Disclosure - Fair Value Measurements</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/Revenue" id="Revenue">
	  <link:definition>00000012 - Disclosure - Revenue</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/EarningsPerShare" id="EarningsPerShare">
	  <link:definition>00000013 - Disclosure - Earnings Per Share</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/Stock-basedCompensation" id="Stock-basedCompensation">
	  <link:definition>00000014 - Disclosure - Stock-Based Compensation</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/IncomeTaxes" id="IncomeTaxes">
	  <link:definition>00000015 - Disclosure - Income Taxes</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/RelatedPartyTransactions" id="RelatedPartyTransactions">
	  <link:definition>00000016 - Disclosure - Related Party Transactions</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/Leases" id="Leases">
	  <link:definition>00000017 - Disclosure - Leases</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/CommitmentsAndContingencies" id="CommitmentsAndContingencies">
	  <link:definition>00000018 - Disclosure - Commitments and Contingencies</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ShareRepurchaseProgram" id="ShareRepurchaseProgram">
	  <link:definition>00000019 - Disclosure - Share Repurchase Program</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/SubsequentEvents" id="SubsequentEvents">
	  <link:definition>00000020 - Disclosure - Subsequent Events</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" id="SummaryOfSignificantAccountingPoliciesPolicies">
	  <link:definition>00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" id="GoodwillAndIntangibleAssetsTables">
	  <link:definition>00000022 - Disclosure - Goodwill and Intangible Assets (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/FairValueMeasurementsTables" id="FairValueMeasurementsTables">
	  <link:definition>00000023 - Disclosure - Fair Value Measurements (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/RevenueTables" id="RevenueTables">
	  <link:definition>00000024 - Disclosure - Revenue (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/EarningsPerShareTables" id="EarningsPerShareTables">
	  <link:definition>00000025 - Disclosure - Earnings Per Share (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/Stock-basedCompensationTables" id="Stock-basedCompensationTables">
	  <link:definition>00000026 - Disclosure - Stock-Based Compensation (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/LeasesTables" id="LeasesTables">
	  <link:definition>00000027 - Disclosure - Leases (Tables)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" id="SummaryOfSignificantAccountingPoliciesDetailsNarrative">
	  <link:definition>00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" id="BusinessCombinationsDetailsNarrative">
	  <link:definition>00000029 - Disclosure - Business Combinations (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" id="ScheduleOfGoodwillDetails">
	  <link:definition>00000030 - Disclosure - Schedule of Goodwill (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" id="ScheduleOfIntangibleAssetsNetDetails">
	  <link:definition>00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" id="ScheduleOfFairValueAssetsAndLiabilitiesDetails">
	  <link:definition>00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" id="ScheduleOfChangesInFairValueMeasurementDetails">
	  <link:definition>00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" id="ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails">
	  <link:definition>00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" id="SummaryOfRevenueByGeographicAreaDetails">
	  <link:definition>00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" id="ScheduleOfDeferredRevenueDetails">
	  <link:definition>00000036 - Disclosure - Schedule of Deferred Revenue (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" id="ScheduleOfBasicAndDilutedEarningsPerShareDetails">
	  <link:definition>00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" id="EarningsPerShareDetailsNarrative">
	  <link:definition>00000038 - Disclosure - Earnings Per Share (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" id="ScheduleOfOptionActivityDetails">
	  <link:definition>00000039 - Disclosure - Schedule of Option Activity (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" id="ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails">
	  <link:definition>00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" id="ScheduleOfWarrantActivityDetails">
	  <link:definition>00000041 - Disclosure - Schedule of Warrant Activity (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" id="ScheduleOfRecognizedStock-basedCompensationExpenseDetails">
	  <link:definition>00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" id="Stock-basedCompensationDetailsNarrative">
	  <link:definition>00000043 - Disclosure - Stock-Based Compensation (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" id="IncomeTaxesDetailsNarrative">
	  <link:definition>00000044 - Disclosure - Income Taxes (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" id="RelatedPartyTransactionsDetailsNarrative">
	  <link:definition>00000045 - Disclosure - Related Party Transactions (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" id="ScheduleOfLeaseExpenseDetails">
	  <link:definition>00000046 - Disclosure - Schedule of Lease Expense (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" id="ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails">
	  <link:definition>00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" id="ScheduleOfOtherInformationRelatedToOperatingLeaseDetails">
	  <link:definition>00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" id="ScheduleOfFutureMinimumLeasePaymentsDetails">
	  <link:definition>00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:roleType roleURI="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" id="ShareRepurchaseProgramDetailsNarrative">
	  <link:definition>00000050 - Disclosure - Share Repurchase Program (Details Narrative)</link:definition>
	  <link:usedOn>link:presentationLink</link:usedOn>
	  <link:usedOn>link:calculationLink</link:usedOn>
	  <link:usedOn>link:definitionLink</link:usedOn>
	</link:roleType>
	<link:linkbaseRef xlink:type="simple" xlink:href="codx-20220331_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Presentation Links" />
	<link:linkbaseRef xlink:type="simple" xlink:href="codx-20220331_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Label Links" />
	<link:linkbaseRef xlink:type="simple" xlink:href="codx-20220331_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Calculation Links" />
	<link:linkbaseRef xlink:type="simple" xlink:href="codx-20220331_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:title="Definition Links" />
      </appinfo>
    </annotation>
    <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
    <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
    <import namespace="http://xbrl.sec.gov/dei/2022" schemaLocation="https://xbrl.sec.gov/dei/2022/dei-2022.xsd" />
    <import namespace="http://fasb.org/us-gaap/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd" />
    <import namespace="http://fasb.org/us-types/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd" />
    <import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd" />
    <import namespace="http://xbrl.sec.gov/country/2022" schemaLocation="https://xbrl.sec.gov/country/2022/country-2022.xsd" />
    <import namespace="http://fasb.org/srt/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd" />
    <import namespace="http://fasb.org/srt-types/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd" />
    <element id="CODX_ThreeCustomersTogetherMember" name="ThreeCustomersTogetherMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_TwoCustomersTogetherMember" name="TwoCustomersTogetherMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" name="AdvancedConceptionsIncAndIdahoMolecularIncMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_MeasurementInputStrikePriceMember" name="MeasurementInputStrikePriceMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_RestOfWorldMember" name="RestOfWorldMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_TwoThousandFifteenLongTermIncentivePlanMember" name="TwoThousandFifteenLongTermIncentivePlanMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_StockOptionsMember" name="StockOptionsMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ThirdPartiesMember" name="ThirdPartiesMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ExclusiveLicenseAgreementMember" name="ExclusiveLicenseAgreementMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_DrBrentSatterfieldMember" name="DrBrentSatterfieldMember" nillable="true" xbrli:periodType="duration" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_TaxesPayableNoncurrent" name="TaxesPayableNoncurrent" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_GainOnRemeasurementOfAcquisitionContingencies" name="GainOnRemeasurementOfAcquisitionContingencies" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_LossOnEquityMethodInvestmentInJointVenture" name="LossOnEquityMethodInvestmentInJointVenture" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_NoncashLeaseExpense" name="NoncashLeaseExpense" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_PaymentsToAcquireInterestInJointVentures" name="PaymentsToAcquireInterestInJointVentures" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ProceedsFromExerciseOfOptionsAndWarrants" name="ProceedsFromExerciseOfOptionsAndWarrants" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" name="NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_DisclosureLeasesAbstract" name="DisclosureLeasesAbstract" abstract="true" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" name="RecentlyAdoptedAccountingStandardsPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" name="ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" nillable="true" xbrli:periodType="duration" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ScheduleOfOperatingLeaseTableTextBlock" name="ScheduleOfOperatingLeaseTableTextBlock" nillable="true" xbrli:periodType="duration" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_StockIssuedDuringPeriodSharesExchanged" name="StockIssuedDuringPeriodSharesExchanged" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_StockIssuedDuringPeriodSharesContingentConsideration" name="StockIssuedDuringPeriodSharesContingentConsideration" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_IndefiniteLivedIntangibleAssetUsefulLife" name="IndefiniteLivedIntangibleAssetUsefulLife" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_FairValueOfContingentConsiderationToCommonStock" name="FairValueOfContingentConsiderationToCommonStock" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_FairValueOfContingentConsiderationToWarrants" name="FairValueOfContingentConsiderationToWarrants" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ContingentConsideredIssuedForBusinessAcquisitions" name="ContingentConsideredIssuedForBusinessAcquisitions" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_WeightedAverageNumberOfBasicSharesOutstanding" name="WeightedAverageNumberOfBasicSharesOutstanding" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_EarningsBasicPerShare" name="EarningsBasicPerShare" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" name="StockIssuedDuringPeriodSharesStockOptionsExercised1" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" nillable="true" xbrli:periodType="instant" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" nillable="true" xbrli:periodType="instant" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" nillable="true" xbrli:periodType="instant" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" name="SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="instant" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" name="SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" name="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" nillable="true" xbrli:periodType="instant" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" name="SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_ClassOfWarrantExercisable" name="ClassOfWarrantExercisable" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
    <element id="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" name="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>7
<FILENAME>codx-20220331_cal.xml
<DESCRIPTION>XBRL CALCULATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.13b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef roleURI="http://codiagnostics.com/role/Cover" xlink:href="codx-20220331.xsd#Cover" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheets" xlink:href="codx-20220331.xsd#BalanceSheets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:href="codx-20220331.xsd#BalanceSheetsParenthetical" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfOperations" xlink:href="codx-20220331.xsd#StatementsOfOperations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:href="codx-20220331.xsd#StatementsOfCashFlows" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:href="codx-20220331.xsd#StatementsOfStockholdersEquity" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:href="codx-20220331.xsd#OverviewAndBasisOfPresentation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinations" xlink:href="codx-20220331.xsd#BusinessCombinations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurements" xlink:href="codx-20220331.xsd#FairValueMeasurements" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Revenue" xlink:href="codx-20220331.xsd#Revenue" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShare" xlink:href="codx-20220331.xsd#EarningsPerShare" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensation" xlink:href="codx-20220331.xsd#Stock-basedCompensation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxes" xlink:href="codx-20220331.xsd#IncomeTaxes" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:href="codx-20220331.xsd#RelatedPartyTransactions" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Leases" xlink:href="codx-20220331.xsd#Leases" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:href="codx-20220331.xsd#CommitmentsAndContingencies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:href="codx-20220331.xsd#ShareRepurchaseProgram" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SubsequentEvents" xlink:href="codx-20220331.xsd#SubsequentEvents" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssetsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:href="codx-20220331.xsd#FairValueMeasurementsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RevenueTables" xlink:href="codx-20220331.xsd#RevenueTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareTables" xlink:href="codx-20220331.xsd#EarningsPerShareTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:href="codx-20220331.xsd#Stock-basedCompensationTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/LeasesTables" xlink:href="codx-20220331.xsd#LeasesTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:href="codx-20220331.xsd#BusinessCombinationsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:href="codx-20220331.xsd#ScheduleOfGoodwillDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:href="codx-20220331.xsd#ScheduleOfIntangibleAssetsNetDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:href="codx-20220331.xsd#ScheduleOfChangesInFairValueMeasurementDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:href="codx-20220331.xsd#ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:href="codx-20220331.xsd#SummaryOfRevenueByGeographicAreaDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:href="codx-20220331.xsd#ScheduleOfDeferredRevenueDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:href="codx-20220331.xsd#ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:href="codx-20220331.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOptionActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfWarrantActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:href="codx-20220331.xsd#Stock-basedCompensationDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:href="codx-20220331.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:href="codx-20220331.xsd#RelatedPartyTransactionsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfLeaseExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:href="codx-20220331.xsd#ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:href="codx-20220331.xsd#ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:href="codx-20220331.xsd#ShareRepurchaseProgramDetailsNarrative" xlink:type="simple" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Cover" xlink:title="00000001 - Document - Cover" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheets" xlink:title="00000002 - Statement - Consolidated Balance Sheets (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecuritiesCurrent" xlink:label="loc_us-gaapMarketableSecuritiesCurrent" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapMarketableSecuritiesCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" />
      <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NotesAndLoansReceivableNetCurrent" xlink:label="loc_us-gaapNotesAndLoansReceivableNetCurrent" />
      <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapNotesAndLoansReceivableNetCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapGoodwill" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
      <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RealEstateInvestmentsJointVentures" xlink:label="loc_us-gaapRealEstateInvestmentsJointVentures" />
      <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapRealEstateInvestmentsJointVentures" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetNoncurrent" xlink:label="loc_us-gaapAccountsReceivableNetNoncurrent" />
      <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAccountsReceivableNetNoncurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccruedLiabilitiesCurrent" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccruedLiabilitiesCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityCurrent" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="loc_us-gaapTaxesPayableCurrent" />
      <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapTaxesPayableCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaapContractWithCustomerLiabilityCurrent" />
      <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapContractWithCustomerLiabilityCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TaxesPayableNoncurrent" xlink:label="loc_CODXTaxesPayableNoncurrent" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_CODXTaxesPayableNoncurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaapDeferredIncomeTaxLiabilitiesNet" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapDeferredIncomeTaxLiabilitiesNet" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityNoncurrent" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" weight="1" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesNoncurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapPreferredStockValue" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapCommonStockValue" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAdditionalPaidInCapital" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaapCommitmentsAndContingencies" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapCommitmentsAndContingencies" xlink:type="arc" weight="1" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" weight="1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:title="00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfOperations" xlink:title="00000004 - Statement - Consolidated Statements of Operations (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="loc_us-gaapSellingAndMarketingExpense" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapSellingAndMarketingExpense" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="loc_us-gaapGeneralAndAdministrativeExpense" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapGeneralAndAdministrativeExpense" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapResearchAndDevelopmentExpense" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="loc_us-gaapDepreciationDepletionAndAmortization" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapDepreciationDepletionAndAmortization" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" weight="1" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestIncomeOther" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="loc_us-gaapGainLossOnDispositionOfAssets1" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapGainLossOnDispositionOfAssets1" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:label="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LossOnEquityMethodInvestmentInJointVenture" xlink:label="loc_CODXLossOnEquityMethodInvestmentInJointVenture" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_CODXLossOnEquityMethodInvestmentInJointVenture" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" weight="1" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapNonoperatingIncomeExpense" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" weight="-1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:title="00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="loc_us-gaapDepreciationDepletionAndAmortization" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapDepreciationDepletionAndAmortization" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapShareBasedCompensation" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:label="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_NoncashLeaseExpense" xlink:label="loc_CODXNoncashLeaseExpense" />
      <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_CODXNoncashLeaseExpense" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="loc_us-gaapGainLossOnSaleOfInvestments" />
      <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapGainLossOnSaleOfInvestments" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="loc_us-gaapGainLossOnDispositionOfAssets1" />
      <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapGainLossOnDispositionOfAssets1" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit" />
      <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts" />
      <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable" />
      <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense" />
      <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories" />
      <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability" />
      <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable" />
      <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" />
      <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:label="loc_us-gaapProceedsFromSaleAndMaturityOfMarketableSecurities" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_us-gaapProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_PaymentsToAcquireInterestInJointVentures" xlink:label="loc_CODXPaymentsToAcquireInterestInJointVentures" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_CODXPaymentsToAcquireInterestInJointVentures" xlink:type="arc" weight="-1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ProceedsFromExerciseOfOptionsAndWarrants" xlink:label="loc_CODXProceedsFromExerciseOfOptionsAndWarrants" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_CODXProceedsFromExerciseOfOptionsAndWarrants" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:type="arc" weight="1" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:type="arc" weight="1" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:type="arc" weight="1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:title="00000006 - Statement - Consolidated Statements of Stockholders&apos; Equity (Unaudited)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:title="00000007 - Disclosure - Overview and Basis of Presentation" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="00000008 - Disclosure - Summary of Significant Accounting Policies" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinations" xlink:title="00000009 - Disclosure - Business Combinations" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:title="00000010 - Disclosure - Goodwill and Intangible Assets" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurements" xlink:title="00000011 - Disclosure - Fair Value Measurements" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Revenue" xlink:title="00000012 - Disclosure - Revenue" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShare" xlink:title="00000013 - Disclosure - Earnings Per Share" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensation" xlink:title="00000014 - Disclosure - Stock-Based Compensation" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxes" xlink:title="00000015 - Disclosure - Income Taxes" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:title="00000016 - Disclosure - Related Party Transactions" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Leases" xlink:title="00000017 - Disclosure - Leases" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:title="00000018 - Disclosure - Commitments and Contingencies" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:title="00000019 - Disclosure - Share Repurchase Program" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SubsequentEvents" xlink:title="00000020 - Disclosure - Subsequent Events" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:title="00000022 - Disclosure - Goodwill and Intangible Assets (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:title="00000023 - Disclosure - Fair Value Measurements (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RevenueTables" xlink:title="00000024 - Disclosure - Revenue (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareTables" xlink:title="00000025 - Disclosure - Earnings Per Share (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:title="00000026 - Disclosure - Stock-Based Compensation (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/LeasesTables" xlink:title="00000027 - Disclosure - Leases (Tables)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:title="00000029 - Disclosure - Business Combinations (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:title="00000030 - Disclosure - Schedule of Goodwill (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:title="00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:title="00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:title="00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:title="00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:title="00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:title="00000036 - Disclosure - Schedule of Deferred Revenue (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:title="00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:title="00000038 - Disclosure - Earnings Per Share (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:title="00000039 - Disclosure - Schedule of Option Activity (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:title="00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:title="00000041 - Disclosure - Schedule of Warrant Activity (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:title="00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:title="00000043 - Disclosure - Stock-Based Compensation (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:title="00000044 - Disclosure - Income Taxes (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:title="00000045 - Disclosure - Related Party Transactions (Details Narrative)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:title="00000046 - Disclosure - Schedule of Lease Expense (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCost" xlink:label="loc_us-gaapLeaseCost" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseCost" xlink:label="loc_us-gaapOperatingLeaseCost" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLeaseCost" xlink:to="loc_us-gaapOperatingLeaseCost" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShortTermLeaseCost" xlink:label="loc_us-gaapShortTermLeaseCost" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLeaseCost" xlink:to="loc_us-gaapShortTermLeaseCost" xlink:type="arc" weight="1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:title="00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
      <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
      <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="loc_CODXLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" />
      <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_CODXLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:type="arc" weight="1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:title="00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)" />
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:title="00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" />
      <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueCurrent" />
      <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc" weight="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueInTwoYears" />
      <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc" weight="1" />
    </link:calculationLink>
    <link:calculationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:title="00000050 - Disclosure - Share Repurchase Program (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>8
<FILENAME>codx-20220331_def.xml
<DESCRIPTION>XBRL DEFINITION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.13b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef roleURI="http://codiagnostics.com/role/Cover" xlink:href="codx-20220331.xsd#Cover" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheets" xlink:href="codx-20220331.xsd#BalanceSheets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:href="codx-20220331.xsd#BalanceSheetsParenthetical" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfOperations" xlink:href="codx-20220331.xsd#StatementsOfOperations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:href="codx-20220331.xsd#StatementsOfCashFlows" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:href="codx-20220331.xsd#StatementsOfStockholdersEquity" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:href="codx-20220331.xsd#OverviewAndBasisOfPresentation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinations" xlink:href="codx-20220331.xsd#BusinessCombinations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurements" xlink:href="codx-20220331.xsd#FairValueMeasurements" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Revenue" xlink:href="codx-20220331.xsd#Revenue" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShare" xlink:href="codx-20220331.xsd#EarningsPerShare" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensation" xlink:href="codx-20220331.xsd#Stock-basedCompensation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxes" xlink:href="codx-20220331.xsd#IncomeTaxes" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:href="codx-20220331.xsd#RelatedPartyTransactions" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Leases" xlink:href="codx-20220331.xsd#Leases" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:href="codx-20220331.xsd#CommitmentsAndContingencies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:href="codx-20220331.xsd#ShareRepurchaseProgram" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SubsequentEvents" xlink:href="codx-20220331.xsd#SubsequentEvents" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssetsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:href="codx-20220331.xsd#FairValueMeasurementsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RevenueTables" xlink:href="codx-20220331.xsd#RevenueTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareTables" xlink:href="codx-20220331.xsd#EarningsPerShareTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:href="codx-20220331.xsd#Stock-basedCompensationTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/LeasesTables" xlink:href="codx-20220331.xsd#LeasesTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:href="codx-20220331.xsd#BusinessCombinationsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:href="codx-20220331.xsd#ScheduleOfGoodwillDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:href="codx-20220331.xsd#ScheduleOfIntangibleAssetsNetDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:href="codx-20220331.xsd#ScheduleOfChangesInFairValueMeasurementDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:href="codx-20220331.xsd#ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:href="codx-20220331.xsd#SummaryOfRevenueByGeographicAreaDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:href="codx-20220331.xsd#ScheduleOfDeferredRevenueDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:href="codx-20220331.xsd#ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:href="codx-20220331.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOptionActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfWarrantActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:href="codx-20220331.xsd#Stock-basedCompensationDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:href="codx-20220331.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:href="codx-20220331.xsd#RelatedPartyTransactionsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfLeaseExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:href="codx-20220331.xsd#ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:href="codx-20220331.xsd#ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:href="codx-20220331.xsd#ShareRepurchaseProgramDetailsNarrative" xlink:type="simple" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" arcroleURI="http://xbrl.org/int/dim/arcrole/all" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#notAll" arcroleURI="http://xbrl.org/int/dim/arcrole/notAll" />
    <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Cover" xlink:title="00000001 - Document - Cover" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheets" xlink:title="00000002 - Statement - Consolidated Balance Sheets (Unaudited)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:title="00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfOperations" xlink:title="00000004 - Statement - Consolidated Statements of Operations (Unaudited)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:title="00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:title="00000006 - Statement - Consolidated Statements of Stockholders&apos; Equity (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConvertiblePreferredStockMember" xlink:label="loc_us-gaapConvertiblePreferredStockMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapConvertiblePreferredStockMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockMember" xlink:label="loc_us-gaapPreferredStockMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapPreferredStockMember_0" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember_10" xlink:type="arc" order="11" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapRetainedEarningsMember_30" xlink:type="arc" order="31" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity_60" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesOutstanding" xlink:label="loc_us-gaapSharesOutstanding_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesOutstanding_60" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_60" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_60" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueOther_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueOther_60" xlink:type="arc" order="5" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesOther_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesOther_60" xlink:type="arc" order="6" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueShareBasedCompensationGross_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueShareBasedCompensationGross_60" xlink:type="arc" order="7" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesShareBasedCompensationGross_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesShareBasedCompensationGross_60" xlink:type="arc" order="8" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss_60" xlink:type="arc" order="9" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:title="00000007 - Disclosure - Overview and Basis of Presentation" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="00000008 - Disclosure - Summary of Significant Accounting Policies" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinations" xlink:title="00000009 - Disclosure - Business Combinations" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:title="00000010 - Disclosure - Goodwill and Intangible Assets" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurements" xlink:title="00000011 - Disclosure - Fair Value Measurements" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Revenue" xlink:title="00000012 - Disclosure - Revenue" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShare" xlink:title="00000013 - Disclosure - Earnings Per Share" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensation" xlink:title="00000014 - Disclosure - Stock-Based Compensation" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxes" xlink:title="00000015 - Disclosure - Income Taxes" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:title="00000016 - Disclosure - Related Party Transactions" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Leases" xlink:title="00000017 - Disclosure - Leases" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:title="00000018 - Disclosure - Commitments and Contingencies" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:title="00000019 - Disclosure - Share Repurchase Program" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SubsequentEvents" xlink:title="00000020 - Disclosure - Subsequent Events" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:title="00000022 - Disclosure - Goodwill and Intangible Assets (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:title="00000023 - Disclosure - Fair Value Measurements (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RevenueTables" xlink:title="00000024 - Disclosure - Revenue (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareTables" xlink:title="00000025 - Disclosure - Earnings Per Share (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:title="00000026 - Disclosure - Stock-Based Compensation (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/LeasesTables" xlink:title="00000027 - Disclosure - Leases (Tables)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductInformationLineItems" xlink:label="loc_us-gaapProductInformationLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductInformationTable" xlink:label="loc_us-gaapScheduleOfProductInformationTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapScheduleOfProductInformationTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="loc_srtRangeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_srtRangeAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtRangeAxis" xlink:to="loc_srtRangeMember" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_srtRangeAxis" xlink:to="loc_srtRangeMember_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="loc_srtMinimumMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMinimumMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="loc_srtMaximumMember_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMaximumMember_30" xlink:type="arc" order="31" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_srtMajorCustomersAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThreeCustomersTogetherMember" xlink:label="loc_CODXThreeCustomersTogetherMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_CODXThreeCustomersTogetherMember_60" xlink:type="arc" order="61" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoCustomersTogetherMember" xlink:label="loc_CODXTwoCustomersTogetherMember_80" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_CODXTwoCustomersTogetherMember_80" xlink:type="arc" order="81" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaapSalesRevenueNetMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapSalesRevenueNetMember_60" xlink:type="arc" order="62" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember_80" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapAccountsReceivableMember_80" xlink:type="arc" order="82" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaapConcentrationRiskByTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapConcentrationRiskByTypeAxis" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="loc_us-gaapCustomerConcentrationRiskMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskTypeDomain" xlink:to="loc_us-gaapCustomerConcentrationRiskMember_60" xlink:type="arc" order="63" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc" order="5" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaapTypeOfAdoptionMember" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" xlink:to="loc_us-gaapTypeOfAdoptionMember" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaapTypeOfAdoptionMember_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" xlink:to="loc_us-gaapTypeOfAdoptionMember_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaapAccountingStandardsUpdate201602Member_100" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapTypeOfAdoptionMember" xlink:to="loc_us-gaapAccountingStandardsUpdate201602Member_100" xlink:type="arc" order="101" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="loc_us-gaapAccountsReceivableGrossCurrent_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAccountsReceivableGrossCurrent_120" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_120" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAccountsReceivableNetCurrent_120" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryNet_120" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryFinishedGoods_120" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryRawMaterials_120" xlink:type="arc" order="5" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="loc_us-gaapPropertyPlantAndEquipmentUsefulLife_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentUsefulLife_120" xlink:type="arc" order="6" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapResearchAndDevelopmentExpense_120" xlink:type="arc" order="7" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapConcentrationRiskPercentage1_120" xlink:type="arc" order="8" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapOperatingLeaseLiability_120" xlink:type="arc" order="9" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_120" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_120" xlink:type="arc" order="10" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:title="00000029 - Disclosure - Business Combinations (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaapBusinessAcquisitionLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaapBusinessAcquisitionAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="loc_us-gaapBusinessAcquisitionAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaapBusinessAcquisitionAcquireeDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapBusinessAcquisitionAxis" xlink:to="loc_us-gaapBusinessAcquisitionAcquireeDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaapBusinessAcquisitionAcquireeDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapBusinessAcquisitionAxis" xlink:to="loc_us-gaapBusinessAcquisitionAcquireeDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:label="loc_CODXAdvancedConceptionsIncAndIdahoMolecularIncMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapBusinessAcquisitionAcquireeDomain" xlink:to="loc_CODXAdvancedConceptionsIncAndIdahoMolecularIncMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesExchanged" xlink:label="loc_CODXStockIssuedDuringPeriodSharesExchanged_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_CODXStockIssuedDuringPeriodSharesExchanged_30" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesContingentConsideration" xlink:label="loc_CODXStockIssuedDuringPeriodSharesContingentConsideration_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_CODXStockIssuedDuringPeriodSharesContingentConsideration_30" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_30" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="loc_us-gaapEquityMethodInvestmentOwnershipPercentage_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_us-gaapEquityMethodInvestmentOwnershipPercentage_30" xlink:type="arc" order="3" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:title="00000030 - Disclosure - Schedule of Goodwill (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:title="00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="loc_us-gaapInProcessResearchAndDevelopmentMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapInProcessResearchAndDevelopmentMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaapNoncompeteAgreementsMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapNoncompeteAgreementsMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_IndefiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_CODXIndefiniteLivedIntangibleAssetUsefulLife_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_CODXIndefiniteLivedIntangibleAssetUsefulLife_110" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross_110" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_110" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_110" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetUsefulLife_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetUsefulLife_110" xlink:type="arc" order="4" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:title="00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="loc_us-gaapFairValueByMeasurementFrequencyAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="loc_us-gaapFairValueByMeasurementFrequencyAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaapFairValueMeasurementFrequencyDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFairValueByMeasurementFrequencyAxis" xlink:to="loc_us-gaapFairValueMeasurementFrequencyDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaapFairValueMeasurementFrequencyDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFairValueByMeasurementFrequencyAxis" xlink:to="loc_us-gaapFairValueMeasurementFrequencyDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="loc_us-gaapFairValueMeasurementsRecurringMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueMeasurementFrequencyDomain" xlink:to="loc_us-gaapFairValueMeasurementsRecurringMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" xlink:to="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" xlink:to="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="loc_us-gaapFairValueInputsLevel1Member_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel1Member_0" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="loc_us-gaapFairValueInputsLevel2Member_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel2Member_10" xlink:type="arc" order="12" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="loc_us-gaapFairValueInputsLevel3Member_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel3Member_20" xlink:type="arc" order="22" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToCommonStock" xlink:label="loc_CODXFairValueOfContingentConsiderationToCommonStock_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_CODXFairValueOfContingentConsiderationToCommonStock_90" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToWarrants" xlink:label="loc_CODXFairValueOfContingentConsiderationToWarrants_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_CODXFairValueOfContingentConsiderationToWarrants_90" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesFairValueDisclosure" xlink:label="loc_us-gaapLiabilitiesFairValueDisclosure_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapLiabilitiesFairValueDisclosure_90" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecurities" xlink:label="loc_us-gaapMarketableSecurities_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapMarketableSecurities_90" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsFairValueDisclosure" xlink:label="loc_us-gaapAssetsFairValueDisclosure_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapAssetsFairValueDisclosure_90" xlink:type="arc" order="4" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:title="00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:title="00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="loc_us-gaapMeasurementInputTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="loc_us-gaapMeasurementInputTypeAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="loc_us-gaapMeasurementInputTypeDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapMeasurementInputTypeAxis" xlink:to="loc_us-gaapMeasurementInputTypeDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="loc_us-gaapMeasurementInputTypeDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapMeasurementInputTypeAxis" xlink:to="loc_us-gaapMeasurementInputTypeDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputSharePriceMember" xlink:label="loc_us-gaapMeasurementInputSharePriceMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputSharePriceMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_MeasurementInputStrikePriceMember" xlink:label="loc_CODXMeasurementInputStrikePriceMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_CODXMeasurementInputStrikePriceMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputPriceVolatilityMember" xlink:label="loc_us-gaapMeasurementInputPriceVolatilityMember_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputPriceVolatilityMember_40" xlink:type="arc" order="41" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputRiskFreeInterestRateMember" xlink:label="loc_us-gaapMeasurementInputRiskFreeInterestRateMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputRiskFreeInterestRateMember_60" xlink:type="arc" order="61" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingMeasurementInput" xlink:label="loc_us-gaapWarrantsAndRightsOutstandingMeasurementInput_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="loc_us-gaapWarrantsAndRightsOutstandingMeasurementInput_110" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingTerm" xlink:label="loc_us-gaapWarrantsAndRightsOutstandingTerm_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="loc_us-gaapWarrantsAndRightsOutstandingTerm_110" xlink:type="arc" order="1" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:title="00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaapDisaggregationOfRevenueLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaapDisaggregationOfRevenueTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapDisaggregationOfRevenueLineItems" xlink:to="loc_us-gaapDisaggregationOfRevenueTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srtStatementGeographicalAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_srtStatementGeographicalAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtStatementGeographicalAxis" xlink:to="loc_srtSegmentGeographicalDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_srtStatementGeographicalAxis" xlink:to="loc_srtSegmentGeographicalDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_AmericasMember" xlink:label="loc_srtAmericasMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtSegmentGeographicalDomain" xlink:to="loc_srtAmericasMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_RestOfWorldMember" xlink:label="loc_CODXRestOfWorldMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtSegmentGeographicalDomain" xlink:to="loc_CODXRestOfWorldMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaapSalesRevenueNetMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapSalesRevenueNetMember_60" xlink:type="arc" order="62" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaapConcentrationRiskByTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_us-gaapConcentrationRiskByTypeAxis" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="loc_us-gaapGeographicConcentrationRiskMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskTypeDomain" xlink:to="loc_us-gaapGeographicConcentrationRiskMember_60" xlink:type="arc" order="63" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerIncludingAssessedTax_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapDisaggregationOfRevenueLineItems" xlink:to="loc_us-gaapRevenueFromContractWithCustomerIncludingAssessedTax_110" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapDisaggregationOfRevenueLineItems" xlink:to="loc_us-gaapConcentrationRiskPercentage1_110" xlink:type="arc" order="1" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:title="00000036 - Disclosure - Schedule of Deferred Revenue (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:title="00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:title="00000038 - Disclosure - Earnings Per Share (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantMember" xlink:label="loc_us-gaapWarrantMember_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapWarrantMember_30" xlink:type="arc" order="31" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_50" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_50" xlink:type="arc" order="0" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:title="00000039 - Disclosure - Schedule of Option Activity (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:title="00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_40" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_40" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_40" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_40" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_40" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_40" xlink:type="arc" order="5" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_40" xlink:type="arc" order="6" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_40" xlink:type="arc" order="7" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:title="00000041 - Disclosure - Schedule of Warrant Activity (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:title="00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaapEmployeeStockOptionMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapEmployeeStockOptionMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember_20" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember_20" xlink:type="arc" order="21" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="loc_us-gaapStockCompensationPlanMember_40" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapStockCompensationPlanMember_40" xlink:type="arc" order="41" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaapAllocatedShareBasedCompensationExpense_90" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapAllocatedShareBasedCompensationExpense_90" xlink:type="arc" order="0" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:title="00000043 - Disclosure - Stock-Based Compensation (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapPlanNameAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoThousandFifteenLongTermIncentivePlanMember" xlink:label="loc_CODXTwoThousandFifteenLongTermIncentivePlanMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_CODXTwoThousandFifteenLongTermIncentivePlanMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockOptionsMember" xlink:label="loc_CODXStockOptionsMember_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_CODXStockOptionsMember_10" xlink:type="arc" order="11" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember_30" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember_30" xlink:type="arc" order="31" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaapRestrictedStockMember_80" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockMember_80" xlink:type="arc" order="82" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantMember" xlink:label="loc_us-gaapWarrantMember_60" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapWarrantMember_60" xlink:type="arc" order="61" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_srtTitleOfIndividualAxis" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThirdPartiesMember" xlink:label="loc_CODXThirdPartiesMember_80" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_CODXThirdPartiesMember_80" xlink:type="arc" order="81" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="loc_us-gaapCommonStockCapitalSharesReservedForFutureIssuance_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapCommonStockCapitalSharesReservedForFutureIssuance_110" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_110" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_110" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_110" xlink:type="arc" order="3" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_110" xlink:type="arc" order="4" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_110" xlink:type="arc" order="5" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_110" xlink:type="arc" order="6" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_110" xlink:type="arc" order="7" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ClassOfWarrantExercisable" xlink:label="loc_CODXClassOfWarrantExercisable_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_CODXClassOfWarrantExercisable_110" xlink:type="arc" order="8" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_110" xlink:type="arc" order="9" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices_110" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices_110" xlink:type="arc" order="10" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:title="00000044 - Disclosure - Income Taxes (Details Narrative)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:title="00000045 - Disclosure - Related Party Transactions (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:label="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:label="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="segment" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:type="arc" order="10" xbrldt:closed="true" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="loc_us-gaapTypeOfArrangementAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="loc_us-gaapTypeOfArrangementAxis" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapTypeOfArrangementAxis" xlink:to="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="loc_us-gaapArrangementsAndNonarrangementTransactionsMember_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_us-gaapTypeOfArrangementAxis" xlink:to="loc_us-gaapArrangementsAndNonarrangementTransactionsMember_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ExclusiveLicenseAgreementMember" xlink:label="loc_CODXExclusiveLicenseAgreementMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" xlink:to="loc_CODXExclusiveLicenseAgreementMember_0" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="loc_srtTitleOfIndividualAxis" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xbrldt:contextElement="segment" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" xlink:type="arc" order="30" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DrBrentSatterfieldMember" xlink:label="loc_CODXDrBrentSatterfieldMember_0" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_CODXDrBrentSatterfieldMember_0" xlink:type="arc" order="2" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedRoyaltiesCurrent" xlink:label="loc_us-gaapAccruedRoyaltiesCurrent_50" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapAccruedRoyaltiesCurrent_50" xlink:type="arc" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRoyalties" xlink:label="loc_us-gaapPaymentsForRoyalties_50" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapPaymentsForRoyalties_50" xlink:type="arc" order="1" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DueToRelatedPartiesCurrentAndNoncurrent" xlink:label="loc_us-gaapDueToRelatedPartiesCurrentAndNoncurrent_50" />
      <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapDueToRelatedPartiesCurrentAndNoncurrent_50" xlink:type="arc" order="2" />
    </link:definitionLink>
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:title="00000046 - Disclosure - Schedule of Lease Expense (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:title="00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:title="00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:title="00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)" />
    <link:definitionLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:title="00000050 - Disclosure - Share Repurchase Program (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>9
<FILENAME>codx-20220331_lab.xml
<DESCRIPTION>XBRL LABEL FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.13b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
    <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementClassOfStockAxis_lbl" xml:lang="en-US">Class of Stock [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConvertiblePreferredStockMember" xlink:label="us-gaap_ConvertiblePreferredStockMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertiblePreferredStockMember" xlink:to="us-gaap_ConvertiblePreferredStockMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertiblePreferredStockMember_lbl" xml:lang="en-US">Convertible Preferred Stock [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xml:lang="en-US">Equity Components [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockMember" xlink:label="us-gaap_PreferredStockMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockMember" xlink:to="us-gaap_PreferredStockMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockMember_lbl" xml:lang="en-US">Preferred Stock [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US">Common Stock [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US">Retained Earnings [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeAxis_lbl" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US">Minimum [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US">Maximum [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl" xml:lang="en-US">Customer [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThreeCustomersTogetherMember" xlink:label="CODX_ThreeCustomersTogetherMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ThreeCustomersTogetherMember" xlink:to="CODX_ThreeCustomersTogetherMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ThreeCustomersTogetherMember_lbl" xml:lang="en-US">Three Customers Together [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoCustomersTogetherMember" xlink:label="CODX_TwoCustomersTogetherMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TwoCustomersTogetherMember" xlink:to="CODX_TwoCustomersTogetherMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_TwoCustomersTogetherMember_lbl" xml:lang="en-US">Two Customers Together [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableMember_lbl" xml:lang="en-US">Accounts Receivable [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl" xml:lang="en-US">Accounting Standards Update [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingStandardsUpdate201602Member_lbl" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xml:lang="en-US">Business Acquisition [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:label="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:to="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember_lbl" xml:lang="en-US">Advanced Conceptions, Inc. and Idaho Molecular, Inc. [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="us-gaap_InProcessResearchAndDevelopmentMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InProcessResearchAndDevelopmentMember" xlink:to="us-gaap_InProcessResearchAndDevelopmentMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InProcessResearchAndDevelopmentMember_lbl" xml:lang="en-US">In Process Research and Development [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncompeteAgreementsMember_lbl" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_lbl" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsRecurringMember" xlink:to="us-gaap_FairValueMeasurementsRecurringMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel1Member" xlink:to="us-gaap_FairValueInputsLevel1Member_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel1Member_lbl" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeAxis_lbl" xml:lang="en-US">Measurement Input Type [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputSharePriceMember" xlink:label="us-gaap_MeasurementInputSharePriceMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputSharePriceMember" xlink:to="us-gaap_MeasurementInputSharePriceMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputSharePriceMember_lbl" xml:lang="en-US">Measurement Input, Share Price [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_MeasurementInputStrikePriceMember" xlink:label="CODX_MeasurementInputStrikePriceMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_MeasurementInputStrikePriceMember" xlink:to="CODX_MeasurementInputStrikePriceMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_MeasurementInputStrikePriceMember_lbl" xml:lang="en-US">Measurement Input Strike Price [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputPriceVolatilityMember" xlink:label="us-gaap_MeasurementInputPriceVolatilityMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputPriceVolatilityMember" xlink:to="us-gaap_MeasurementInputPriceVolatilityMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputPriceVolatilityMember_lbl" xml:lang="en-US">Measurement Input, Price Volatility [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputRiskFreeInterestRateMember" xlink:label="us-gaap_MeasurementInputRiskFreeInterestRateMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputRiskFreeInterestRateMember" xlink:to="us-gaap_MeasurementInputRiskFreeInterestRateMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputRiskFreeInterestRateMember_lbl" xml:lang="en-US">Measurement Input, Risk Free Interest Rate [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementGeographicalAxis_lbl" xml:lang="en-US">Geographical [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_AmericasMember" xlink:label="srt_AmericasMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_AmericasMember" xlink:to="srt_AmericasMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_AmericasMember_lbl" xml:lang="en-US">Americas [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_RestOfWorldMember" xlink:label="CODX_RestOfWorldMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_RestOfWorldMember" xlink:to="CODX_RestOfWorldMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_RestOfWorldMember_lbl" xml:lang="en-US">Rest of World [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="us-gaap_GeographicConcentrationRiskMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeographicConcentrationRiskMember" xlink:to="us-gaap_GeographicConcentrationRiskMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeographicConcentrationRiskMember_lbl" xml:lang="en-US">Geographic Concentration Risk [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantMember" xlink:label="us-gaap_WarrantMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WarrantMember" xlink:to="us-gaap_WarrantMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WarrantMember_lbl" xml:lang="en-US">Warrant [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl" xml:lang="en-US">Plan Name [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoThousandFifteenLongTermIncentivePlanMember" xlink:label="CODX_TwoThousandFifteenLongTermIncentivePlanMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TwoThousandFifteenLongTermIncentivePlanMember" xlink:to="CODX_TwoThousandFifteenLongTermIncentivePlanMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_TwoThousandFifteenLongTermIncentivePlanMember_lbl" xml:lang="en-US">2015 Long Term Incentive Plan [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl" xml:lang="en-US">Award Type [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockOptionsMember" xlink:label="CODX_StockOptionsMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockOptionsMember" xlink:to="CODX_StockOptionsMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_StockOptionsMember_lbl" xml:lang="en-US">Stock Options [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl" xml:lang="en-US">Title of Individual [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThirdPartiesMember" xlink:label="CODX_ThirdPartiesMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ThirdPartiesMember" xlink:to="CODX_ThirdPartiesMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ThirdPartiesMember_lbl" xml:lang="en-US">Third Parties [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember" xlink:label="us-gaap_RestrictedStockMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedStockMember_lbl" xml:lang="en-US">Restricted Stock [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US">Share-Based Payment Arrangement, Option [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockCompensationPlanMember" xlink:to="us-gaap_StockCompensationPlanMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockCompensationPlanMember_lbl" xml:lang="en-US">Share-Based Payment Arrangement [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_TypeOfArrangementAxis_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TypeOfArrangementAxis_lbl" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ExclusiveLicenseAgreementMember" xlink:label="CODX_ExclusiveLicenseAgreementMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ExclusiveLicenseAgreementMember" xlink:to="CODX_ExclusiveLicenseAgreementMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ExclusiveLicenseAgreementMember_lbl" xml:lang="en-US">Exclusive License Agreement [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DrBrentSatterfieldMember" xlink:label="CODX_DrBrentSatterfieldMember" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_DrBrentSatterfieldMember" xlink:to="CODX_DrBrentSatterfieldMember_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_DrBrentSatterfieldMember_lbl" xml:lang="en-US">Dr. Brent Satterfield [Member]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentDescription" xlink:label="dei_AmendmentDescription" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentDescription" xlink:to="dei_AmendmentDescription_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentDescription_lbl" xml:lang="en-US">Amendment Description</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentRegistrationStatement" xlink:label="dei_DocumentRegistrationStatement" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentRegistrationStatement" xlink:to="dei_DocumentRegistrationStatement_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentRegistrationStatement_lbl" xml:lang="en-US">Document Registration Statement</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAnnualReport_lbl" xml:lang="en-US">Document Annual Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentQuarterlyReport_lbl" xml:lang="en-US">Document Quarterly Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US">Document Transition Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentShellCompanyReport" xlink:label="dei_DocumentShellCompanyReport" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentShellCompanyReport" xlink:to="dei_DocumentShellCompanyReport_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentShellCompanyReport_lbl" xml:lang="en-US">Document Shell Company Report</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentShellCompanyEventDate" xlink:label="dei_DocumentShellCompanyEventDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentShellCompanyEventDate" xlink:to="dei_DocumentShellCompanyEventDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentShellCompanyEventDate_lbl" xml:lang="en-US">Document Shell Company Event Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodStartDate" xlink:label="dei_DocumentPeriodStartDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodStartDate" xlink:to="dei_DocumentPeriodStartDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodStartDate_lbl" xml:lang="en-US">Document Period Start Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US">Document Fiscal Period Focus</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US">Document Fiscal Year Focus</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US">Current Fiscal Year End Date</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPrimarySicNumber" xlink:label="dei_EntityPrimarySicNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPrimarySicNumber" xlink:to="dei_EntityPrimarySicNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPrimarySicNumber_lbl" xml:lang="en-US">Entity Primary SIC Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address, Address Line One</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US">Entity Address, Address Line Two</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine3_lbl" xml:lang="en-US">Entity Address, Address Line Three</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address, City or Town</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address, State or Province</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCountry" xlink:label="dei_EntityAddressCountry" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCountry" xlink:to="dei_EntityAddressCountry_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCountry_lbl" xml:lang="en-US">Entity Address, Country</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CountryRegion" xlink:label="dei_CountryRegion" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CountryRegion" xlink:to="dei_CountryRegion_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CountryRegion_lbl" xml:lang="en-US">Country Region</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Extension" xlink:label="dei_Extension" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Extension" xlink:to="dei_Extension_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Extension_lbl" xml:lang="en-US">Extension</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_WrittenCommunications" xlink:to="dei_WrittenCommunications_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_WrittenCommunications_lbl" xml:lang="en-US">Written Communications</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SolicitingMaterial" xlink:to="dei_SolicitingMaterial_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SolicitingMaterial_lbl" xml:lang="en-US">Soliciting Material</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementTenderOffer" xlink:to="dei_PreCommencementTenderOffer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementTenderOffer_lbl" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementIssuerTenderOffer" xlink:to="dei_PreCommencementIssuerTenderOffer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_PreCommencementIssuerTenderOffer_lbl" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Title of 12(b) Security</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_NoTradingSymbolFlag" xlink:label="dei_NoTradingSymbolFlag" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_NoTradingSymbolFlag" xlink:to="dei_NoTradingSymbolFlag_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_NoTradingSymbolFlag_lbl" xml:lang="en-US">No Trading Symbol Flag</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12gTitle" xlink:label="dei_Security12gTitle" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12gTitle" xlink:to="dei_Security12gTitle_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12gTitle_lbl" xml:lang="en-US">Title of 12(g) Security</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityReportingObligation" xlink:label="dei_SecurityReportingObligation" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityReportingObligation" xlink:to="dei_SecurityReportingObligation_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityReportingObligation_lbl" xml:lang="en-US">Security Reporting Obligation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AnnualInformationForm" xlink:label="dei_AnnualInformationForm" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AnnualInformationForm" xlink:to="dei_AnnualInformationForm_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AnnualInformationForm_lbl" xml:lang="en-US">Annual Information Form</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="dei_AuditedAnnualFinancialStatements" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditedAnnualFinancialStatements" xlink:to="dei_AuditedAnnualFinancialStatements_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditedAnnualFinancialStatements_lbl" xml:lang="en-US">Audited Annual Financial Statements</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US">Entity Voluntary Filers</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US">Entity Current Reporting Status</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US">Entity Interactive Data Current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US">Entity Filer Category</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US">Entity Small Business</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityExTransitionPeriod" xlink:label="dei_EntityExTransitionPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityExTransitionPeriod" xlink:to="dei_EntityExTransitionPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityExTransitionPeriod_lbl" xml:lang="en-US">Elected Not To Use the Extended Transition Period</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAccountingStandard" xlink:label="dei_DocumentAccountingStandard" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAccountingStandard" xlink:to="dei_DocumentAccountingStandard_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAccountingStandard_lbl" xml:lang="en-US">Document Accounting Standard</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_OtherReportingStandardItemNumber" xlink:label="dei_OtherReportingStandardItemNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_OtherReportingStandardItemNumber" xlink:to="dei_OtherReportingStandardItemNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_OtherReportingStandardItemNumber_lbl" xml:lang="en-US">Other Reporting Standard Item Number</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US">Entity Shell Company</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityPublicFloat_lbl" xml:lang="en-US">Entity Public Float</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityBankruptcyProceedingsReportingCurrent" xlink:label="dei_EntityBankruptcyProceedingsReportingCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityBankruptcyProceedingsReportingCurrent" xlink:to="dei_EntityBankruptcyProceedingsReportingCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityBankruptcyProceedingsReportingCurrent_lbl" xml:lang="en-US">Entity Bankruptcy Proceedings, Reporting Current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentsIncorporatedByReferenceTextBlock" xlink:label="dei_DocumentsIncorporatedByReferenceTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentsIncorporatedByReferenceTextBlock" xlink:to="dei_DocumentsIncorporatedByReferenceTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentsIncorporatedByReferenceTextBlock_lbl" xml:lang="en-US">Documents Incorporated by Reference [Text Block]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US">Assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US">Current assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US">Cash and cash equivalents</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecuritiesCurrent" xlink:label="us-gaap_MarketableSecuritiesCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MarketableSecuritiesCurrent" xlink:to="us-gaap_MarketableSecuritiesCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MarketableSecuritiesCurrent_lbl" xml:lang="en-US">Marketable investment securities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US">Accounts receivable, net</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US">Inventory</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NotesAndLoansReceivableNetCurrent" xlink:label="us-gaap_NotesAndLoansReceivableNetCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NotesAndLoansReceivableNetCurrent" xlink:to="us-gaap_NotesAndLoansReceivableNetCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NotesAndLoansReceivableNetCurrent_lbl" xml:lang="en-US">Note receivable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US">Total current assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US">Property and equipment, net</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US">Operating lease right-of-use asset</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US">Goodwill</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US">Intangible assets, net</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RealEstateInvestmentsJointVentures" xlink:label="us-gaap_RealEstateInvestmentsJointVentures" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RealEstateInvestmentsJointVentures" xlink:to="us-gaap_RealEstateInvestmentsJointVentures_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RealEstateInvestmentsJointVentures_lbl" xml:lang="en-US">Investment in joint venture</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetNoncurrent" xlink:label="us-gaap_AccountsReceivableNetNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetNoncurrent" xlink:to="us-gaap_AccountsReceivableNetNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsReceivableNetNoncurrent_lbl" xml:lang="en-US">Note receivable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US">Total assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US">Liabilities and stockholders&#8217; equity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US">Current liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US">Accounts payable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US">Accrued expenses, current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US">Operating lease liability, current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:label="us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:to="us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_lbl" xml:lang="en-US">Contingent consideration liabilities, current</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="us-gaap_TaxesPayableCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TaxesPayableCurrent_lbl" xml:lang="en-US">Income taxes payable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xml:lang="en-US">Deferred revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US">Total current liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrentAbstract" xlink:to="us-gaap_LiabilitiesNoncurrentAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract_lbl" xml:lang="en-US">Long-term liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TaxesPayableNoncurrent" xlink:label="CODX_TaxesPayableNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TaxesPayableNoncurrent" xlink:to="CODX_TaxesPayableNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="CODX_TaxesPayableNoncurrent_lbl" xml:lang="en-US">Income taxes payable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US">Deferred tax liability</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US">Operating lease liability</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:label="us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:to="us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent_lbl" xml:lang="en-US">Contingent consideration liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="us-gaap_LiabilitiesNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl" xml:lang="en-US">Total long-term liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US">Total liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US">Commitments and contingencies (Note 12)</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US">Stockholders&#8217; equity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl" xml:lang="en-US">Convertible preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US">Common stock, $0.001 par value; 100,000,000 shares authorized; 33,984,068 and 33,819,862 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapital_lbl" xml:lang="en-US">Additional paid-in capital</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US">Accumulated earnings</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US">Total stockholders&#8217; equity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US">Total liabilities and stockholders&#8217; equity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xml:lang="en-US">Convertible preferred stock, par value</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xml:lang="en-US">Convertible preferred stock , shares authorized</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xml:lang="en-US">Convertible preferred stock, shares issued</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xml:lang="en-US">Convertible preferred stock, shares outstanding</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xml:lang="en-US">Common stock, par value</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xml:lang="en-US">Common stock, shares authorized</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US">Common stock, shares issued</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US">Common stock, shares outstanding</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xml:lang="en-US">Income Statement [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xml:lang="en-US">Revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl" xml:lang="en-US">Cost of revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US">Gross profit</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xml:lang="en-US">Operating expenses</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xml:lang="en-US">Sales and marketing</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US">General and administrative</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US">Research and development</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationDepletionAndAmortization" xlink:to="us-gaap_DepreciationDepletionAndAmortization_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationDepletionAndAmortization_lbl" xml:lang="en-US">Depreciation and amortization</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl" xml:lang="en-US">Total operating expenses</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US">Income from operations</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xml:lang="en-US">Other income (expense)</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="us-gaap_InterestIncomeOther" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOther" xlink:to="us-gaap_InterestIncomeOther_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOther_lbl" xml:lang="en-US">Interest income</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="us-gaap_GainLossOnDispositionOfAssets1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnDispositionOfAssets1" xlink:to="us-gaap_GainLossOnDispositionOfAssets1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainLossOnDispositionOfAssets1_lbl" xml:lang="en-US">Loss on disposition of assets</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:label="CODX_GainOnRemeasurementOfAcquisitionContingencies" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:to="CODX_GainOnRemeasurementOfAcquisitionContingencies_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_GainOnRemeasurementOfAcquisitionContingencies_lbl" xml:lang="en-US">Gain on remeasurement of acquisition contingencies</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LossOnEquityMethodInvestmentInJointVenture" xlink:label="CODX_LossOnEquityMethodInvestmentInJointVenture" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_LossOnEquityMethodInvestmentInJointVenture" xlink:to="CODX_LossOnEquityMethodInvestmentInJointVenture_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_LossOnEquityMethodInvestmentInJointVenture_lbl" xml:lang="en-US">(Loss) on equity method investment in joint venture</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xml:lang="en-US">Total other income (expense)</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US">Income before income taxes</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US">Income tax provision</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US">Net income</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="us-gaap_EarningsPerShareBasicAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasicAbstract" xlink:to="us-gaap_EarningsPerShareBasicAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicAbstract_lbl" xml:lang="en-US">Earnings per common share:</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US">Basic</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US">Diluted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xml:lang="en-US">Weighted average shares outstanding:</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US">Basic</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US">Diluted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US">Cash flows from operating activities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_2_lbl" xml:lang="en-US">Net income</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US">Adjustments to reconcile net income to cash used in operating activities:</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US">Stock-based compensation expense</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:to="CODX_GainOnRemeasurementOfAcquisitionContingencies_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="CODX_GainOnRemeasurementOfAcquisitionContingencies_2_lbl" xml:lang="en-US">Change in fair value of acquisition contingencies</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_NoncashLeaseExpense" xlink:label="CODX_NoncashLeaseExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_NoncashLeaseExpense" xlink:to="CODX_NoncashLeaseExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_NoncashLeaseExpense_lbl" xml:lang="en-US">Non-cash lease expense</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="us-gaap_GainLossOnSaleOfInvestments" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfInvestments" xlink:to="us-gaap_GainLossOnSaleOfInvestments_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_GainLossOnSaleOfInvestments_lbl" xml:lang="en-US">Loss from equity method investment</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnDispositionOfAssets1" xlink:to="us-gaap_GainLossOnDispositionOfAssets1_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_GainLossOnDispositionOfAssets1_2_lbl" xml:lang="en-US">Loss on disposition of assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US">Deferred income taxes</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US">Bad debt expense</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xml:lang="en-US">Changes in assets and liabilities:</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US">Accounts receivable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl" xml:lang="en-US">Prepaid expenses</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US">Inventory</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xml:lang="en-US">Deferred revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_lbl" xml:lang="en-US">Income taxes payable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xml:lang="en-US">Accounts payable, accrued expenses and other liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US">Net cash provided by operating activities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xml:lang="en-US">Cash flows from investing activities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US">Purchases of property and equipment</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:label="us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:to="us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities_lbl" xml:lang="en-US">Proceeds from maturities of marketable investment securities</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_PaymentsToAcquireInterestInJointVentures" xlink:label="CODX_PaymentsToAcquireInterestInJointVentures" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_PaymentsToAcquireInterestInJointVentures" xlink:to="CODX_PaymentsToAcquireInterestInJointVentures_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="CODX_PaymentsToAcquireInterestInJointVentures_lbl" xml:lang="en-US">Investment in joint venture</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US">Net cash provided by investing activities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xml:lang="en-US">Cash flows from financing activities</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ProceedsFromExerciseOfOptionsAndWarrants" xlink:label="CODX_ProceedsFromExerciseOfOptionsAndWarrants" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ProceedsFromExerciseOfOptionsAndWarrants" xlink:to="CODX_ProceedsFromExerciseOfOptionsAndWarrants_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ProceedsFromExerciseOfOptionsAndWarrants_lbl" xml:lang="en-US">Proceeds from exercise of options and warrants</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US">Net cash provided by financing activities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US">Net increase in cash and cash equivalents</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US">Cash and cash equivalents at beginning of period</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_2_lbl" xml:lang="en-US">Cash and cash equivalents at end of period</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US">Supplemental disclosure of cash flow information</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl" xml:lang="en-US">Interest paid</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xml:lang="en-US">Income taxes paid</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl" xml:lang="en-US">Supplemental disclosure of non-cash investing and financing transactions</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" xlink:label="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" xlink:to="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment_lbl" xml:lang="en-US">Inventory moved to property, plant and equipment</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US">Right-of-use assets obtained in exchange for new operating lease liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl" xml:lang="en-US">Statement [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US">Statement [Line Items]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_2_lbl" xml:lang="en-US">Beginning balance, value</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharesOutstanding_lbl" xml:lang="en-US">Beginning balance, shares</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US">Common stock issued for option exercises</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US">Common stock issued for option exercises, shares</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueOther" xlink:label="us-gaap_StockIssuedDuringPeriodValueOther" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueOther" xlink:to="us-gaap_StockIssuedDuringPeriodValueOther_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueOther_lbl" xml:lang="en-US">Common stock issued for warrant exercises</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="us-gaap_StockIssuedDuringPeriodSharesOther" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesOther" xlink:to="us-gaap_StockIssuedDuringPeriodSharesOther_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesOther_lbl" xml:lang="en-US">Common stock issued for warrant exercises, shares</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross_lbl" xml:lang="en-US">Stock-based compensation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross_lbl" xml:lang="en-US">Stock-based compensation expense, shares</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_3_lbl" xml:lang="en-US">Ending balance, value</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharesOutstanding_2_lbl" xml:lang="en-US">Ending balance, shares</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xml:lang="en-US">Overview and Basis of Presentation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US">Summary of Significant Accounting Policies</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xml:lang="en-US">Business Combination and Asset Acquisition [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US">Business Combinations</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US">Goodwill and Intangible Assets</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US">Fair Value Measurements</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US">Revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US">Earnings Per Share</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xml:lang="en-US">Share-Based Payment Arrangement [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" xlink:label="us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" xlink:to="us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock_lbl" xml:lang="en-US">Stock-Based Compensation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US">Income Taxes</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="us-gaap_RelatedPartyTransactionsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsAbstract" xlink:to="us-gaap_RelatedPartyTransactionsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RelatedPartyTransactionsAbstract_lbl" xml:lang="en-US">Related Party Transactions [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:to="us-gaap_RelatedPartyTransactionsDisclosureTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock_lbl" xml:lang="en-US">Related Party Transactions</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="CODX_DisclosureLeasesAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_DisclosureLeasesAbstract" xlink:to="CODX_DisclosureLeasesAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_DisclosureLeasesAbstract_lbl" xml:lang="en-US">Leases</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US">Leases</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xml:lang="en-US">Commitments and Contingencies</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityAbstract_lbl" xml:lang="en-US">Equity [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityTableTextBlock" xlink:label="us-gaap_ScheduleOfStockholdersEquityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockholdersEquityTableTextBlock" xlink:to="us-gaap_ScheduleOfStockholdersEquityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockholdersEquityTableTextBlock_lbl" xml:lang="en-US">Share Repurchase Program</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xml:lang="en-US">Subsequent Events</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US">Cash and Cash Equivalents</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecuritiesPolicy" xlink:label="us-gaap_MarketableSecuritiesPolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MarketableSecuritiesPolicy" xlink:to="us-gaap_MarketableSecuritiesPolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MarketableSecuritiesPolicy_lbl" xml:lang="en-US">Marketable Investment Securities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="us-gaap_TradeAndOtherAccountsReceivablePolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:to="us-gaap_TradeAndOtherAccountsReceivablePolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeAndOtherAccountsReceivablePolicy_lbl" xml:lang="en-US">Accounts Receivable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityMethodInvestmentsPolicy" xlink:label="us-gaap_EquityMethodInvestmentsPolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityMethodInvestmentsPolicy" xlink:to="us-gaap_EquityMethodInvestmentsPolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityMethodInvestmentsPolicy_lbl" xml:lang="en-US">Equity-Method Investments</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US">Inventory</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US">Property and Equipment</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl" xml:lang="en-US">Business Combinations</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US">Leases</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock_lbl" xml:lang="en-US">Revenue Recognition</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US">Deferred Revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" xml:lang="en-US">Research and Development</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xml:lang="en-US">Stock-based Compensation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US">Income Taxes</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xml:lang="en-US">Net Income per Share</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xml:lang="en-US">Concentrations Risk and Significant Customers</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US">Recent Accounting Pronouncements</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" xlink:label="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" xlink:to="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock_lbl" xml:lang="en-US">Recently Adopted Accounting Standards</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US">Schedule of Goodwill</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US">Schedule of Intangible Assets, Net</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_lbl" xml:lang="en-US">Schedule of Fair Value Assets and Liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_lbl" xml:lang="en-US">Schedule of Changes in Fair Value Measurement</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_lbl" xml:lang="en-US">Schedule of Contingent Consideration Common Stock and Warrants</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xml:lang="en-US">Summary of Revenue by Geographic Area</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US">Schedule of Deferred Revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US">Schedule of Basic and Diluted Earnings Per Share</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US">Schedule of Option Activity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_lbl" xml:lang="en-US">Schedule of Outstanding Restricted Stock Units and Related Activity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:to="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl" xml:lang="en-US">Schedule of Warrant Activity</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock_lbl" xml:lang="en-US">Schedule of Recognized Stock-based Compensation Expense</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl" xml:lang="en-US">Schedule of Lease Expense</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" xlink:label="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" xlink:to="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_lbl" xml:lang="en-US">Schedule of Maturities on Company Lease Liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ScheduleOfOperatingLeaseTableTextBlock" xlink:label="CODX_ScheduleOfOperatingLeaseTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ScheduleOfOperatingLeaseTableTextBlock" xlink:to="CODX_ScheduleOfOperatingLeaseTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ScheduleOfOperatingLeaseTableTextBlock_lbl" xml:lang="en-US">Schedule of Other Information Related to Operating Lease</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US">Schedule of Future Minimum Lease Payments</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductInformationTable" xlink:label="us-gaap_ScheduleOfProductInformationTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfProductInformationTable" xlink:to="us-gaap_ScheduleOfProductInformationTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfProductInformationTable_lbl" xml:lang="en-US">Schedule of Product Information [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductInformationLineItems" xlink:label="us-gaap_ProductInformationLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductInformationLineItems" xlink:to="us-gaap_ProductInformationLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductInformationLineItems_lbl" xml:lang="en-US">Product Information [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xml:lang="en-US">Accounts receivable</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US">Doubtful accounts</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryFinishedGoods_lbl" xml:lang="en-US">Inventory finished goods</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterials" xlink:to="us-gaap_InventoryRawMaterials_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryRawMaterials_lbl" xml:lang="en-US">Inventory raw materials</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US">Estimated useful life of property</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xml:lang="en-US">Concentration risk percentage</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US">Operating lease liability</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_2_lbl" xml:lang="en-US">Operating right use of asset</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesExchanged" xlink:label="CODX_StockIssuedDuringPeriodSharesExchanged" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesExchanged" xlink:to="CODX_StockIssuedDuringPeriodSharesExchanged_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_StockIssuedDuringPeriodSharesExchanged_lbl" xml:lang="en-US">Number of shares exchanged</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesContingentConsideration" xlink:label="CODX_StockIssuedDuringPeriodSharesContingentConsideration" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesContingentConsideration" xlink:to="CODX_StockIssuedDuringPeriodSharesContingentConsideration_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_StockIssuedDuringPeriodSharesContingentConsideration_lbl" xml:lang="en-US">Number of shares on contingent consideration</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:to="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_lbl" xml:lang="en-US">Warrants to purchase shares of common stock</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:to="us-gaap_EquityMethodInvestmentOwnershipPercentage_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage_lbl" xml:lang="en-US">Equity method investment ownership percentage</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_Goodwill_2_lbl" xml:lang="en-US">Goodwil - beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xml:lang="en-US">Measurement period adjustments</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_Goodwill_3_lbl" xml:lang="en-US">Goodwill - Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_IndefiniteLivedIntangibleAssetUsefulLife" xlink:label="CODX_IndefiniteLivedIntangibleAssetUsefulLife" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_IndefiniteLivedIntangibleAssetUsefulLife" xlink:to="CODX_IndefiniteLivedIntangibleAssetUsefulLife_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_IndefiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US">Estimated useful lives in years, term</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US">Intangible assets, gross</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US">Less accumulated amortization</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US">Estimated useful lives in years</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_lbl" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_lbl" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToCommonStock" xlink:label="CODX_FairValueOfContingentConsiderationToCommonStock" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_FairValueOfContingentConsiderationToCommonStock" xlink:to="CODX_FairValueOfContingentConsiderationToCommonStock_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_FairValueOfContingentConsiderationToCommonStock_lbl" xml:lang="en-US">Contingent consideration - common stock</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToWarrants" xlink:label="CODX_FairValueOfContingentConsiderationToWarrants" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_FairValueOfContingentConsiderationToWarrants" xlink:to="CODX_FairValueOfContingentConsiderationToWarrants_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_FairValueOfContingentConsiderationToWarrants_lbl" xml:lang="en-US">Contingent consideration - warrants</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesFairValueDisclosure" xlink:label="us-gaap_LiabilitiesFairValueDisclosure" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesFairValueDisclosure" xlink:to="us-gaap_LiabilitiesFairValueDisclosure_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesFairValueDisclosure_lbl" xml:lang="en-US">Total liabilities measured at fair value</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecurities" xlink:label="us-gaap_MarketableSecurities" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MarketableSecurities" xlink:to="us-gaap_MarketableSecurities_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MarketableSecurities_lbl" xml:lang="en-US">Marketable securities (certificates of deposit)</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsFairValueDisclosure" xlink:label="us-gaap_AssetsFairValueDisclosure" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsFairValueDisclosure" xlink:to="us-gaap_AssetsFairValueDisclosure_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsFairValueDisclosure_lbl" xml:lang="en-US">Total assets measured at fair value</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_lbl" xml:lang="en-US">Fair value as of December 31, 2021</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ContingentConsideredIssuedForBusinessAcquisitions" xlink:label="CODX_ContingentConsideredIssuedForBusinessAcquisitions" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ContingentConsideredIssuedForBusinessAcquisitions" xlink:to="CODX_ContingentConsideredIssuedForBusinessAcquisitions_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ContingentConsideredIssuedForBusinessAcquisitions_lbl" xml:lang="en-US">Change in fair value of contingent consideration issued for business acquisitions</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_2_lbl" xml:lang="en-US">Fair value as of March 31, 2022</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable_lbl" xml:lang="en-US">Fair Value Measurement Inputs and Valuation Techniques [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems_lbl" xml:lang="en-US">Fair Value Measurement Inputs and Valuation Techniques [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingMeasurementInput" xlink:label="us-gaap_WarrantsAndRightsOutstandingMeasurementInput" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WarrantsAndRightsOutstandingMeasurementInput" xlink:to="us-gaap_WarrantsAndRightsOutstandingMeasurementInput_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WarrantsAndRightsOutstandingMeasurementInput_lbl" xml:lang="en-US">Warrants measurement input</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingTerm" xlink:label="us-gaap_WarrantsAndRightsOutstandingTerm" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WarrantsAndRightsOutstandingTerm" xlink:to="us-gaap_WarrantsAndRightsOutstandingTerm_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WarrantsAndRightsOutstandingTerm_lbl" xml:lang="en-US">Expected term</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US">Revenue</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ConcentrationRiskPercentage1_2_lbl" xml:lang="en-US">Percentage of revenue</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US">Deferred revenue, beginning balance</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US">Revenue recognized included in deferred revenue balance at the beginning of the period</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerLiability_2_lbl" xml:lang="en-US">Deferred revenue, Ending balance</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_3_lbl" xml:lang="en-US">Net income, as reported</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_WeightedAverageNumberOfBasicSharesOutstanding" xlink:label="CODX_WeightedAverageNumberOfBasicSharesOutstanding" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_WeightedAverageNumberOfBasicSharesOutstanding" xlink:to="CODX_WeightedAverageNumberOfBasicSharesOutstanding_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_WeightedAverageNumberOfBasicSharesOutstanding_lbl" xml:lang="en-US">Weighted average shares, basic</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:to="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_lbl" xml:lang="en-US">Dilutive effect of stock options, warrants and RSUs</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_2_lbl" xml:lang="en-US">Shares used to compute diluted earnings per share</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_EarningsBasicPerShare" xlink:label="CODX_EarningsBasicPerShare" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_EarningsBasicPerShare" xlink:to="CODX_EarningsBasicPerShare_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_EarningsBasicPerShare_lbl" xml:lang="en-US">Basic earnings per share</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_2_lbl" xml:lang="en-US">Diluted earnings per share</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US">Securities excluded from computation of diluted earnings per share</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US">Number of Options Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US">Weighted-average Remaining Contractual Life (years) Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_lbl" xml:lang="en-US">Number of Options Outstanding, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" xml:lang="en-US">Number of Options Outstanding, Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US">Number of Options Outstanding, Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:label="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:to="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_lbl" xml:lang="en-US">Number of Options Outstanding, Exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price Exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_lbl" xml:lang="en-US">Weighted Average Fair Value Exercised</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2_lbl" xml:lang="en-US">Number of Options Outstanding, Ending</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2_lbl" xml:lang="en-US">Weighted Average Exercise Price Outstanding, Ending</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_2_lbl" xml:lang="en-US">Weighted Average Fair Value Outstanding, Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US">Weighted-average Remaining Contractual Life (years) Outstanding, Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US">Number of Options Exercisable Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Exercisable Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_lbl" xml:lang="en-US">Weighted Average Fair Value, Exercisable Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US">Weighted-average Remaining Contractual Life (years), Exercisable Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xml:lang="en-US">Number of Restricted Stock Units, Outstanding Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Grant Date Fair Value, Outstanding Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US">Number of Restricted Stock Units, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Grant Date Fair Value, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US">Number of Restricted Stock Units, Vested</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Grant Date Fair Value, Vested</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xml:lang="en-US">Number of Restricted Stock Units, Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Grant Date Fair Value, Forfeited/Cancelled</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2_lbl" xml:lang="en-US">Number of Restricted Stock Units, Outstanding Ending</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2_lbl" xml:lang="en-US">Weighted Average Grant Date Fair Value, Outstanding Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US">Number of Warrants Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US">Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" xml:lang="en-US">Number of Warrants Outstanding, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value, Granted</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" xml:lang="en-US">Number of Warrants Outstanding, Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value, Expired</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" xml:lang="en-US">Number of Warrants Outstanding, Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value, Forfeited/Cancelled</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" xml:lang="en-US">Number of Warrants Outstanding, Exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US">Weighted Average Fair Value, Exercised</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2_lbl" xml:lang="en-US">Number of Warrants Outstanding, Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US">Weighted Average Exercise Price, Ending</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_2_lbl" xml:lang="en-US">Weighted Average Fair Value, Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US">Weighted-average Remaining Contractual Life (Years) Outstanding, Ending</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US">Total stock-based compensation expense</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_lbl" xml:lang="en-US">Aggregate number of common shares reserved</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US">Number of common shares availalble for issuance</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US">Intrinsic value of options value exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US">Aggregate intrinsic value of options outstanding</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US">Unvested options</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US">Unrecognized stock-based compensation</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US">Unrecognized stock-based compensation recognition period</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US">Intrinsic value of warrants exercised</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ClassOfWarrantExercisable" xlink:label="CODX_ClassOfWarrantExercisable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ClassOfWarrantExercisable" xlink:to="CODX_ClassOfWarrantExercisable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ClassOfWarrantExercisable_lbl" xml:lang="en-US">Warrants exercisable</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:to="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_2_lbl" xml:lang="en-US">Warrants to purchase a common stock</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl" xml:lang="en-US">Number of shares issued for services</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_2_lbl" xml:lang="en-US">Income tax expense benefit</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US">Effective tax rate</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US">Effective federal statutory tax rate</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:label="us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_lbl" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Table]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:label="us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_lbl" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedRoyaltiesCurrent" xlink:label="us-gaap_AccruedRoyaltiesCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedRoyaltiesCurrent" xlink:to="us-gaap_AccruedRoyaltiesCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedRoyaltiesCurrent_lbl" xml:lang="en-US">Accrued royalties</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRoyalties" xlink:label="us-gaap_PaymentsForRoyalties" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRoyalties" xlink:to="us-gaap_PaymentsForRoyalties_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForRoyalties_lbl" xml:lang="en-US">Payment for royalties per month</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DueToRelatedPartiesCurrentAndNoncurrent" xlink:label="us-gaap_DueToRelatedPartiesCurrentAndNoncurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DueToRelatedPartiesCurrentAndNoncurrent" xlink:to="us-gaap_DueToRelatedPartiesCurrentAndNoncurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DueToRelatedPartiesCurrentAndNoncurrent_lbl" xml:lang="en-US">Due to related party</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_DisclosureLeasesAbstract" xlink:to="CODX_DisclosureLeasesAbstract_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="CODX_DisclosureLeasesAbstract_2_lbl" xml:lang="en-US">Schedule Of Lease Expense</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseCost_lbl" xml:lang="en-US">Operating lease costs</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShortTermLeaseCost_lbl" xml:lang="en-US">Short-term lease costs</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LeaseCost_lbl" xml:lang="en-US">Total lease costs</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_DisclosureLeasesAbstract" xlink:to="CODX_DisclosureLeasesAbstract_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="CODX_DisclosureLeasesAbstract_3_lbl" xml:lang="en-US">Schedule Of Maturities On Company Lease Liabilities</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US">2022 (remainder)</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US">2023</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US">2024</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US">2025</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US">2026</link:label>
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_lbl" xml:lang="en-US">Thereafter</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US">Total lease payments</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US">Less: imputed interest</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_2_lbl" xml:lang="en-US">Present value of operating lease liabilities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_2_lbl" xml:lang="en-US">Less: current portion</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_2_lbl" xml:lang="en-US">Long-term portion</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US">Cash paid for operating leases included in operating cash flows</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US">Remaining lease term of operating leases</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US">Discount rate of operating leases</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US">2022</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_lbl" xml:lang="en-US">2023</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_lbl" xml:lang="en-US">2024</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue_lbl" xml:lang="en-US">Total lease payments</link:label>
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="us-gaap_StockRepurchaseProgramAuthorizedAmount1" />
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:to="us-gaap_StockRepurchaseProgramAuthorizedAmount1_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockRepurchaseProgramAuthorizedAmount1_lbl" xml:lang="en-US">Stock repurchase program authorized amount</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TaxesPayableNoncurrent" xlink:to="CODX_TaxesPayableNoncurrent_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_TaxesPayableNoncurrent_doc" xml:lang="en-US">Taxes payable non current.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_PaymentsToAcquireInterestInJointVentures" xlink:to="CODX_PaymentsToAcquireInterestInJointVentures_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_PaymentsToAcquireInterestInJointVentures_doc" xml:lang="en-US">Payments to acquire interest in joint ventures</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ProceedsFromExerciseOfOptionsAndWarrants" xlink:to="CODX_ProceedsFromExerciseOfOptionsAndWarrants_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ProceedsFromExerciseOfOptionsAndWarrants_doc" xml:lang="en-US">Proceeds from exercise of options and warrants</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" xlink:to="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment_doc" xml:lang="en-US">Noncash or part noncash inventory moved to property plant and equipment</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_NoncashLeaseExpense" xlink:to="CODX_NoncashLeaseExpense_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_NoncashLeaseExpense_doc" xml:lang="en-US">Noncash lease expense</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_LossOnEquityMethodInvestmentInJointVenture" xlink:to="CODX_LossOnEquityMethodInvestmentInJointVenture_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_LossOnEquityMethodInvestmentInJointVenture_doc" xml:lang="en-US">Loss on equity method investment in joint venture</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TwoCustomersTogetherMember" xlink:to="CODX_TwoCustomersTogetherMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_TwoCustomersTogetherMember_doc" xml:lang="en-US">Two Customers Together [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ScheduleOfOperatingLeaseTableTextBlock" xlink:to="CODX_ScheduleOfOperatingLeaseTableTextBlock_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ScheduleOfOperatingLeaseTableTextBlock_doc" xml:lang="en-US">Schedule of operating lease [Table Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" xlink:to="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_doc" xml:lang="en-US">Schedule of maturities on company lease liabilities [Table Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:to="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember_doc" xml:lang="en-US">Advanced Conceptions, Inc. and Idaho Molecular, Inc. [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesContingentConsideration" xlink:to="CODX_StockIssuedDuringPeriodSharesContingentConsideration_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_StockIssuedDuringPeriodSharesContingentConsideration_doc" xml:lang="en-US">Stock issued during period shares contingent consideration.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_IndefiniteLivedIntangibleAssetUsefulLife" xlink:to="CODX_IndefiniteLivedIntangibleAssetUsefulLife_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_IndefiniteLivedIntangibleAssetUsefulLife_doc" xml:lang="en-US">Indefinite lived intangible asset useful life.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_FairValueOfContingentConsiderationToCommonStock" xlink:to="CODX_FairValueOfContingentConsiderationToCommonStock_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_FairValueOfContingentConsiderationToCommonStock_doc" xml:lang="en-US">Fair value of contingent consideration to common stock.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_FairValueOfContingentConsiderationToWarrants" xlink:to="CODX_FairValueOfContingentConsiderationToWarrants_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_FairValueOfContingentConsiderationToWarrants_doc" xml:lang="en-US">Fair value of contigent consideration to warrants.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ContingentConsideredIssuedForBusinessAcquisitions" xlink:to="CODX_ContingentConsideredIssuedForBusinessAcquisitions_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ContingentConsideredIssuedForBusinessAcquisitions_doc" xml:lang="en-US">Contingent considered issued for business acquisitions.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_MeasurementInputStrikePriceMember" xlink:to="CODX_MeasurementInputStrikePriceMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_MeasurementInputStrikePriceMember_doc" xml:lang="en-US">Measurement Input Strike Price [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_RestOfWorldMember" xlink:to="CODX_RestOfWorldMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_RestOfWorldMember_doc" xml:lang="en-US">Rest of World [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_WeightedAverageNumberOfBasicSharesOutstanding" xlink:to="CODX_WeightedAverageNumberOfBasicSharesOutstanding_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_WeightedAverageNumberOfBasicSharesOutstanding_doc" xml:lang="en-US">Weighted average number of basic shares outstanding.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_EarningsBasicPerShare" xlink:to="CODX_EarningsBasicPerShare_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_EarningsBasicPerShare_doc" xml:lang="en-US">Earnings basic per share.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TwoThousandFifteenLongTermIncentivePlanMember" xlink:to="CODX_TwoThousandFifteenLongTermIncentivePlanMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_TwoThousandFifteenLongTermIncentivePlanMember_doc" xml:lang="en-US">2015 Long Term Incentive Plan [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:to="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_doc" xml:lang="en-US">Number of share options (or share units) exercised during the current period.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_doc" xml:lang="en-US">Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_doc" xml:lang="en-US">Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercisable.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_doc" xml:lang="en-US">Share based compensation arrangement by share based payment award options non vested weighted average term.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockOptionsMember" xlink:to="CODX_StockOptionsMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_StockOptionsMember_doc" xml:lang="en-US">Stock Options [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average price at which grantees can acquire the shares reserved for issuance under the non-option plan.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_doc" xml:lang="en-US">Weighted average fair value, beginning.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_doc" xml:lang="en-US">Weighted-average remaining contractual life (years) outstanding, ending.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average exercise price, forfeited/cancelled.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_doc" xml:lang="en-US">Weighted average fair value, exercised.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average exercise price, forfeited/cancelled.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average price at which grantees could have acquired the underlying shares with respect to non-options of the plan that expired.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average exercise price, granted.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_doc" xml:lang="en-US">Weighted average exercise price, beginning.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_doc" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, non-option, granted in period, weighted average exercise price.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_doc" xml:lang="en-US">Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_doc" xml:lang="en-US">Weighted average fair value, forfeited/cancelled.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_doc" xml:lang="en-US">Weighted-average remaining contractual life (years) outstanding, beginning.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_doc" xml:lang="en-US">Intrinsic value of warrants exercised.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ClassOfWarrantExercisable" xlink:to="CODX_ClassOfWarrantExercisable_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ClassOfWarrantExercisable_doc" xml:lang="en-US">Class of warrant exercisable.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ThirdPartiesMember" xlink:to="CODX_ThirdPartiesMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ThirdPartiesMember_doc" xml:lang="en-US">Third Parties [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ExclusiveLicenseAgreementMember" xlink:to="CODX_ExclusiveLicenseAgreementMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ExclusiveLicenseAgreementMember_doc" xml:lang="en-US">Exclusive License Agreement [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_DrBrentSatterfieldMember" xlink:to="CODX_DrBrentSatterfieldMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_DrBrentSatterfieldMember_doc" xml:lang="en-US">Dr. Brent Satterfield [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" xlink:to="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock_doc" xml:lang="en-US">Recently adopted accounting standards [Policy Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ThreeCustomersTogetherMember" xlink:to="CODX_ThreeCustomersTogetherMember_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_ThreeCustomersTogetherMember_doc" xml:lang="en-US">Three Customers Together [Member]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesExchanged" xlink:to="CODX_StockIssuedDuringPeriodSharesExchanged_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_StockIssuedDuringPeriodSharesExchanged_doc" xml:lang="en-US">Stock issued during period shares exchanged.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:to="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_doc" xml:lang="en-US">Lessee operating lease liability payments due after year four.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:to="CODX_GainOnRemeasurementOfAcquisitionContingencies_doc" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="CODX_GainOnRemeasurementOfAcquisitionContingencies_doc" xml:lang="en-US">Gain on remeasurement of acquisition contingencies.</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_2_lbl" xml:lang="en-US">Assets, Current</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetNoncurrent" xlink:to="us-gaap_AccountsReceivableNetNoncurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetNoncurrent_2_lbl" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Noncurrent</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_2_lbl" xml:lang="en-US">Assets [Default Label]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_2_lbl" xml:lang="en-US">Liabilities, Current</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_TaxesPayableNoncurrent" xlink:to="CODX_TaxesPayableNoncurrent_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_TaxesPayableNoncurrent_3_lbl" xml:lang="en-US">TaxesPayableNoncurrent</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrent_2_lbl" xml:lang="en-US">Liabilities, Noncurrent</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_2_lbl" xml:lang="en-US">Liabilities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_4_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_4_lbl" xml:lang="en-US">Stockholders' Equity Attributable to Parent</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_2_lbl" xml:lang="en-US">Liabilities and Equity</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_2_lbl" xml:lang="en-US">Gross Profit</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_2_lbl" xml:lang="en-US">Operating Expenses</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_2_lbl" xml:lang="en-US">Operating Income (Loss)</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NonoperatingIncomeExpense_2_lbl" xml:lang="en-US">Nonoperating Income (Expense)</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_2_lbl" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2_lbl" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfInvestments" xlink:to="us-gaap_GainLossOnSaleOfInvestments_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainLossOnSaleOfInvestments_2_lbl" xml:lang="en-US">Gain (Loss) on Sale of Investments</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_2_lbl" xml:lang="en-US">Increase (Decrease) in Accounts Receivable</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_2_lbl" xml:lang="en-US">Increase (Decrease) in Prepaid Expense</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_2_lbl" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2_lbl" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_2_lbl" xml:lang="en-US">Increase (Decrease) in Income Taxes Payable</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_2_lbl" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_2_lbl" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_PaymentsToAcquireInterestInJointVentures" xlink:to="CODX_PaymentsToAcquireInterestInJointVentures_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_PaymentsToAcquireInterestInJointVentures_3_lbl" xml:lang="en-US">PaymentsToAcquireInterestInJointVentures</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_2_lbl" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_2_lbl" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_2_lbl" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_3_lbl" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesOutstanding_3_lbl" xml:lang="en-US">Shares, Outstanding</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_2_lbl" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_2_lbl" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_2_lbl" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_2_lbl" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_2_lbl" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_2_lbl" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_2_lbl" xml:lang="en-US">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent_3_lbl" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Noncurrent</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_2_lbl" xml:lang="en-US">Revenue from Contract with Customer, Including Assessed Tax</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiability_3_lbl" xml:lang="en-US">Contract with Customer, Liability</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_2_lbl" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Option, Nonvested, Weighted Average Exercise Price</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:to="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1_3_lbl" xml:lang="en-US">StockIssuedDuringPeriodSharesStockOptionsExercised1</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_3_lbl" xml:lang="en-US">SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_3_lbl" xml:lang="en-US">SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_3_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_3_lbl" xml:lang="en-US">ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:to="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_4_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_4_lbl" xml:lang="en-US">SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_2_lbl" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:to="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_3_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_3_lbl" xml:lang="en-US">ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCost_2_lbl" xml:lang="en-US">Lease, Cost</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_2_lbl" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent_2_lbl" xml:lang="en-US">Operating Leases, Future Minimum Payments Due, Next 12 Months</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears_2_lbl" xml:lang="en-US">Operating Leases, Future Minimum Payments, Due in Two Years</link:label>
      <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue_2_lbl" xlink:type="arc" />
      <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue_2_lbl" xml:lang="en-US">Operating Leases, Future Minimum Payments Due</link:label>
    </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>10
<FILENAME>codx-20220331_pre.xml
<DESCRIPTION>XBRL PRESENTATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
    <!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.13b -->
    <!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com -->
    <!-- Field: Doc-Info; Name: Status; Value: 0x00000000 -->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
    <link:roleRef roleURI="http://codiagnostics.com/role/Cover" xlink:href="codx-20220331.xsd#Cover" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheets" xlink:href="codx-20220331.xsd#BalanceSheets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:href="codx-20220331.xsd#BalanceSheetsParenthetical" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfOperations" xlink:href="codx-20220331.xsd#StatementsOfOperations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:href="codx-20220331.xsd#StatementsOfCashFlows" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:href="codx-20220331.xsd#StatementsOfStockholdersEquity" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:href="codx-20220331.xsd#OverviewAndBasisOfPresentation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinations" xlink:href="codx-20220331.xsd#BusinessCombinations" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssets" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurements" xlink:href="codx-20220331.xsd#FairValueMeasurements" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Revenue" xlink:href="codx-20220331.xsd#Revenue" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShare" xlink:href="codx-20220331.xsd#EarningsPerShare" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensation" xlink:href="codx-20220331.xsd#Stock-basedCompensation" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxes" xlink:href="codx-20220331.xsd#IncomeTaxes" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:href="codx-20220331.xsd#RelatedPartyTransactions" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Leases" xlink:href="codx-20220331.xsd#Leases" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:href="codx-20220331.xsd#CommitmentsAndContingencies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:href="codx-20220331.xsd#ShareRepurchaseProgram" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SubsequentEvents" xlink:href="codx-20220331.xsd#SubsequentEvents" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:href="codx-20220331.xsd#GoodwillAndIntangibleAssetsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:href="codx-20220331.xsd#FairValueMeasurementsTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RevenueTables" xlink:href="codx-20220331.xsd#RevenueTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareTables" xlink:href="codx-20220331.xsd#EarningsPerShareTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:href="codx-20220331.xsd#Stock-basedCompensationTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/LeasesTables" xlink:href="codx-20220331.xsd#LeasesTables" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="codx-20220331.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:href="codx-20220331.xsd#BusinessCombinationsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:href="codx-20220331.xsd#ScheduleOfGoodwillDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:href="codx-20220331.xsd#ScheduleOfIntangibleAssetsNetDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:href="codx-20220331.xsd#ScheduleOfChangesInFairValueMeasurementDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:href="codx-20220331.xsd#ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:href="codx-20220331.xsd#SummaryOfRevenueByGeographicAreaDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:href="codx-20220331.xsd#ScheduleOfDeferredRevenueDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:href="codx-20220331.xsd#ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:href="codx-20220331.xsd#EarningsPerShareDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOptionActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:href="codx-20220331.xsd#ScheduleOfWarrantActivityDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:href="codx-20220331.xsd#Stock-basedCompensationDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:href="codx-20220331.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:href="codx-20220331.xsd#RelatedPartyTransactionsDetailsNarrative" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:href="codx-20220331.xsd#ScheduleOfLeaseExpenseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:href="codx-20220331.xsd#ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:href="codx-20220331.xsd#ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:href="codx-20220331.xsd#ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:type="simple" />
    <link:roleRef roleURI="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:href="codx-20220331.xsd#ShareRepurchaseProgramDetailsNarrative" xlink:type="simple" />
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Cover" xlink:title="00000001 - Document - Cover">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentDescription" xlink:label="loc_deiAmendmentDescription" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentDescription" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentRegistrationStatement" xlink:label="loc_deiDocumentRegistrationStatement" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentRegistrationStatement" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="loc_deiDocumentAnnualReport" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentAnnualReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_deiDocumentQuarterlyReport" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentQuarterlyReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="loc_deiDocumentTransitionReport" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentTransitionReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentShellCompanyReport" xlink:label="loc_deiDocumentShellCompanyReport" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentShellCompanyReport" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentShellCompanyEventDate" xlink:label="loc_deiDocumentShellCompanyEventDate" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentShellCompanyEventDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodStartDate" xlink:label="loc_deiDocumentPeriodStartDate" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodStartDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_deiDocumentFiscalPeriodFocus" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalPeriodFocus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_deiDocumentFiscalYearFocus" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalYearFocus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_deiCurrentFiscalYearEndDate" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCurrentFiscalYearEndDate" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPrimarySicNumber" xlink:label="loc_deiEntityPrimarySicNumber" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityPrimarySicNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine2" xlink:label="loc_deiEntityAddressAddressLine2" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine2" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine3" xlink:label="loc_deiEntityAddressAddressLine3" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine3" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
      <link:presentationArc order="240" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCountry" xlink:label="loc_deiEntityAddressCountry" />
      <link:presentationArc order="250" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCountry" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
      <link:presentationArc order="260" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CountryRegion" xlink:label="loc_deiCountryRegion" />
      <link:presentationArc order="270" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCountryRegion" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
      <link:presentationArc order="280" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
      <link:presentationArc order="290" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Extension" xlink:label="loc_deiExtension" />
      <link:presentationArc order="300" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiExtension" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_WrittenCommunications" xlink:label="loc_deiWrittenCommunications" />
      <link:presentationArc order="310" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiWrittenCommunications" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SolicitingMaterial" xlink:label="loc_deiSolicitingMaterial" />
      <link:presentationArc order="320" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSolicitingMaterial" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_PreCommencementTenderOffer" xlink:label="loc_deiPreCommencementTenderOffer" />
      <link:presentationArc order="330" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementTenderOffer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="loc_deiPreCommencementIssuerTenderOffer" />
      <link:presentationArc order="340" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiPreCommencementIssuerTenderOffer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
      <link:presentationArc order="350" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_NoTradingSymbolFlag" xlink:label="loc_deiNoTradingSymbolFlag" />
      <link:presentationArc order="360" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiNoTradingSymbolFlag" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
      <link:presentationArc order="370" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
      <link:presentationArc order="380" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12gTitle" xlink:label="loc_deiSecurity12gTitle" />
      <link:presentationArc order="390" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12gTitle" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityReportingObligation" xlink:label="loc_deiSecurityReportingObligation" />
      <link:presentationArc order="400" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityReportingObligation" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AnnualInformationForm" xlink:label="loc_deiAnnualInformationForm" />
      <link:presentationArc order="410" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAnnualInformationForm" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="loc_deiAuditedAnnualFinancialStatements" />
      <link:presentationArc order="420" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditedAnnualFinancialStatements" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="loc_deiEntityWellKnownSeasonedIssuer" />
      <link:presentationArc order="430" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityWellKnownSeasonedIssuer" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="loc_deiEntityVoluntaryFilers" />
      <link:presentationArc order="440" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityVoluntaryFilers" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_deiEntityCurrentReportingStatus" />
      <link:presentationArc order="450" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCurrentReportingStatus" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_deiEntityInteractiveDataCurrent" />
      <link:presentationArc order="460" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityInteractiveDataCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="loc_deiEntityFilerCategory" />
      <link:presentationArc order="470" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFilerCategory" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="loc_deiEntitySmallBusiness" />
      <link:presentationArc order="480" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntitySmallBusiness" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
      <link:presentationArc order="490" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityExTransitionPeriod" xlink:label="loc_deiEntityExTransitionPeriod" />
      <link:presentationArc order="500" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityExTransitionPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAccountingStandard" xlink:label="loc_deiDocumentAccountingStandard" />
      <link:presentationArc order="510" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentAccountingStandard" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_OtherReportingStandardItemNumber" xlink:label="loc_deiOtherReportingStandardItemNumber" />
      <link:presentationArc order="520" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiOtherReportingStandardItemNumber" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="loc_deiEntityShellCompany" />
      <link:presentationArc order="530" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityShellCompany" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="loc_deiEntityPublicFloat" />
      <link:presentationArc order="540" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityPublicFloat" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityBankruptcyProceedingsReportingCurrent" xlink:label="loc_deiEntityBankruptcyProceedingsReportingCurrent" />
      <link:presentationArc order="550" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityBankruptcyProceedingsReportingCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_deiEntityCommonStockSharesOutstanding" />
      <link:presentationArc order="560" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCommonStockSharesOutstanding" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentsIncorporatedByReferenceTextBlock" xlink:label="loc_deiDocumentsIncorporatedByReferenceTextBlock" />
      <link:presentationArc order="570" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentsIncorporatedByReferenceTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheets" xlink:title="00000002 - Statement - Consolidated Balance Sheets (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapAssetsAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapAssetsCurrentAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecuritiesCurrent" xlink:label="loc_us-gaapMarketableSecuritiesCurrent" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapMarketableSecuritiesCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NotesAndLoansReceivableNetCurrent" xlink:label="loc_us-gaapNotesAndLoansReceivableNetCurrent" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapNotesAndLoansReceivableNetCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapGoodwill" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RealEstateInvestmentsJointVentures" xlink:label="loc_us-gaapRealEstateInvestmentsJointVentures" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapRealEstateInvestmentsJointVentures" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetNoncurrent" xlink:label="loc_us-gaapAccountsReceivableNetNoncurrent" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapAccountsReceivableNetNoncurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract" xlink:to="loc_us-gaapAssets" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapAccountsPayableCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccruedLiabilitiesCurrent" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapAccruedLiabilitiesCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:label="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityCurrent" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="loc_us-gaapTaxesPayableCurrent" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapTaxesPayableCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaapContractWithCustomerLiabilityCurrent" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapContractWithCustomerLiabilityCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
      <link:presentationArc order="240" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract" />
      <link:presentationArc order="250" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TaxesPayableNoncurrent" xlink:label="loc_CODXTaxesPayableNoncurrent" />
      <link:presentationArc order="260" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:to="loc_CODXTaxesPayableNoncurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaapDeferredIncomeTaxLiabilitiesNet" />
      <link:presentationArc order="270" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:to="loc_us-gaapDeferredIncomeTaxLiabilitiesNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
      <link:presentationArc order="280" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityNoncurrent" />
      <link:presentationArc order="290" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:to="loc_us-gaapAssetAcquisitionContingentConsiderationLiabilityNoncurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
      <link:presentationArc order="300" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract" xlink:to="loc_us-gaapLiabilitiesNoncurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
      <link:presentationArc order="310" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaapCommitmentsAndContingencies" />
      <link:presentationArc order="320" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapCommitmentsAndContingencies" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract" />
      <link:presentationArc order="330" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapStockholdersEquityAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
      <link:presentationArc order="340" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract" xlink:to="loc_us-gaapPreferredStockValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
      <link:presentationArc order="350" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract" xlink:to="loc_us-gaapCommonStockValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
      <link:presentationArc order="360" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract" xlink:to="loc_us-gaapAdditionalPaidInCapital" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
      <link:presentationArc order="370" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
      <link:presentationArc order="380" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
      <link:presentationArc order="390" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BalanceSheetsParenthetical" xlink:title="00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapPreferredStockSharesIssued" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapPreferredStockSharesOutstanding" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapCommonStockSharesAuthorized" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapCommonStockSharesIssued" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract" xlink:to="loc_us-gaapCommonStockSharesOutstanding" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfOperations" xlink:title="00000004 - Statement - Consolidated Statements of Operations (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaapIncomeStatementAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapRevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="loc_us-gaapOperatingExpensesAbstract" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapOperatingExpensesAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="loc_us-gaapSellingAndMarketingExpense" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract" xlink:to="loc_us-gaapSellingAndMarketingExpense" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="loc_us-gaapGeneralAndAdministrativeExpense" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract" xlink:to="loc_us-gaapGeneralAndAdministrativeExpense" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract" xlink:to="loc_us-gaapResearchAndDevelopmentExpense" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="loc_us-gaapDepreciationDepletionAndAmortization" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract" xlink:to="loc_us-gaapDepreciationDepletionAndAmortization" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOperatingExpensesAbstract" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="loc_us-gaapNonoperatingIncomeExpenseAbstract" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:to="loc_us-gaapInterestIncomeOther" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="loc_us-gaapGainLossOnDispositionOfAssets1" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:to="loc_us-gaapGainLossOnDispositionOfAssets1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:label="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:to="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LossOnEquityMethodInvestmentInJointVenture" xlink:label="loc_CODXLossOnEquityMethodInvestmentInJointVenture" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:to="loc_CODXLossOnEquityMethodInvestmentInJointVenture" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNonoperatingIncomeExpenseAbstract" xlink:to="loc_us-gaapNonoperatingIncomeExpense" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="loc_us-gaapEarningsPerShareBasicAbstract" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapEarningsPerShareBasicAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicAbstract" xlink:to="loc_us-gaapEarningsPerShareBasic" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicAbstract" xlink:to="loc_us-gaapEarningsPerShareDiluted" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapWeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" />
      <link:presentationArc order="240" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapWeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfCashFlows" xlink:title="00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaapStatementOfCashFlowsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="loc_us-gaapDepreciationDepletionAndAmortization" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapDepreciationDepletionAndAmortization" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapShareBasedCompensation" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_GainOnRemeasurementOfAcquisitionContingencies" xlink:label="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_CODXGainOnRemeasurementOfAcquisitionContingencies" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_NoncashLeaseExpense" xlink:label="loc_CODXNoncashLeaseExpense" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_CODXNoncashLeaseExpense" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfInvestments" xlink:label="loc_us-gaapGainLossOnSaleOfInvestments" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapGainLossOnSaleOfInvestments" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1" xlink:label="loc_us-gaapGainLossOnDispositionOfAssets1" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapGainLossOnDispositionOfAssets1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:label="loc_us-gaapProceedsFromSaleAndMaturityOfMarketableSecurities" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="loc_us-gaapProceedsFromSaleAndMaturityOfMarketableSecurities" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_PaymentsToAcquireInterestInJointVentures" xlink:label="loc_CODXPaymentsToAcquireInterestInJointVentures" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="loc_CODXPaymentsToAcquireInterestInJointVentures" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract" />
      <link:presentationArc order="240" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ProceedsFromExerciseOfOptionsAndWarrants" xlink:label="loc_CODXProceedsFromExerciseOfOptionsAndWarrants" />
      <link:presentationArc order="250" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="loc_CODXProceedsFromExerciseOfOptionsAndWarrants" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
      <link:presentationArc order="260" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
      <link:presentationArc order="270" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" />
      <link:presentationArc order="280" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_2" />
      <link:presentationArc order="290" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="loc_us-gaapSupplementalCashFlowInformationAbstract" />
      <link:presentationArc order="300" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapSupplementalCashFlowInformationAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestPaidNet" xlink:label="loc_us-gaapInterestPaidNet" />
      <link:presentationArc order="310" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract" xlink:to="loc_us-gaapInterestPaidNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaapIncomeTaxesPaidNet" />
      <link:presentationArc order="320" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract" xlink:to="loc_us-gaapIncomeTaxesPaidNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract" />
      <link:presentationArc order="330" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract" xlink:to="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" xlink:label="loc_CODXNoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" />
      <link:presentationArc order="340" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract" xlink:to="loc_CODXNoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="loc_us-gaapRightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" />
      <link:presentationArc order="350" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract" xlink:to="loc_us-gaapRightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/StatementsOfStockholdersEquity" xlink:title="00000006 - Statement - Consolidated Statements of Stockholders&apos; Equity (Unaudited)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaapStatementOfStockholdersEquityAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfStockholdersEquityAbstract" xlink:to="loc_us-gaapStatementTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="50" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConvertiblePreferredStockMember" xlink:label="loc_us-gaapConvertiblePreferredStockMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapConvertiblePreferredStockMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="50" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockMember" xlink:label="loc_us-gaapPreferredStockMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapPreferredStockMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapCommonStockMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapRetainedEarningsMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesOutstanding" xlink:label="loc_us-gaapSharesOutstanding" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesOutstanding" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueOther" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueOther" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesOther" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesOther" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueShareBasedCompensationGross" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueShareBasedCompensationGross" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesShareBasedCompensationGross" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesShareBasedCompensationGross" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_2" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesOutstanding" xlink:label="loc_us-gaapSharesOutstanding_2" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesOutstanding_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/OverviewAndBasisOfPresentation" xlink:title="00000007 - Disclosure - Overview and Basis of Presentation">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="loc_us-gaapBusinessDescriptionAndBasisOfPresentationTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapBusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="00000008 - Disclosure - Summary of Significant Accounting Policies">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapSignificantAccountingPoliciesTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapSignificantAccountingPoliciesTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinations" xlink:title="00000009 - Disclosure - Business Combinations">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="loc_us-gaapBusinessCombinationAndAssetAcquisitionAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="loc_us-gaapBusinessCombinationDisclosureTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessCombinationAndAssetAcquisitionAbstract" xlink:to="loc_us-gaapBusinessCombinationDisclosureTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssets" xlink:title="00000010 - Disclosure - Goodwill and Intangible Assets">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurements" xlink:title="00000011 - Disclosure - Fair Value Measurements">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="loc_us-gaapFairValueDisclosuresTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueDisclosuresTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Revenue" xlink:title="00000012 - Disclosure - Revenue">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaapRevenueFromContractWithCustomerAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="loc_us-gaapRevenueFromContractWithCustomerTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapRevenueFromContractWithCustomerTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShare" xlink:title="00000013 - Disclosure - Earnings Per Share">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="loc_us-gaapEarningsPerShareTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapEarningsPerShareTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensation" xlink:title="00000014 - Disclosure - Stock-Based Compensation">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" xlink:label="loc_us-gaapDisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapDisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxes" xlink:title="00000015 - Disclosure - Income Taxes">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaapIncomeTaxDisclosureTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract" xlink:to="loc_us-gaapIncomeTaxDisclosureTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactions" xlink:title="00000016 - Disclosure - Related Party Transactions">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="loc_us-gaapRelatedPartyTransactionsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="loc_us-gaapRelatedPartyTransactionsDisclosureTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsAbstract" xlink:to="loc_us-gaapRelatedPartyTransactionsDisclosureTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Leases" xlink:title="00000017 - Disclosure - Leases">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="loc_us-gaapLesseeOperatingLeasesTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeasesTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/CommitmentsAndContingencies" xlink:title="00000018 - Disclosure - Commitments and Contingencies">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract" xlink:to="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgram" xlink:title="00000019 - Disclosure - Share Repurchase Program">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="loc_us-gaapEquityAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityTableTextBlock" xlink:label="loc_us-gaapScheduleOfStockholdersEquityTableTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityAbstract" xlink:to="loc_us-gaapScheduleOfStockholdersEquityTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SubsequentEvents" xlink:title="00000020 - Disclosure - Subsequent Events">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaapSubsequentEventsTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract" xlink:to="loc_us-gaapSubsequentEventsTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecuritiesPolicy" xlink:label="loc_us-gaapMarketableSecuritiesPolicy" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapMarketableSecuritiesPolicy" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="loc_us-gaapTradeAndOtherAccountsReceivablePolicy" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapTradeAndOtherAccountsReceivablePolicy" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityMethodInvestmentsPolicy" xlink:label="loc_us-gaapEquityMethodInvestmentsPolicy" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapEquityMethodInvestmentsPolicy" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaapInventoryPolicyTextBlock" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapInventoryPolicyTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaapBusinessCombinationsPolicy" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapBusinessCombinationsPolicy" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="loc_us-gaapLesseeLeasesPolicyTextBlock" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapLesseeLeasesPolicyTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaapRevenueRecognitionPolicyTextBlock" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapRevenueRecognitionPolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="loc_us-gaapRevenueFromContractWithCustomerPolicyTextBlock" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapRevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="loc_us-gaapResearchAndDevelopmentExpensePolicy" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapResearchAndDevelopmentExpensePolicy" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaapIncomeTaxPolicyTextBlock" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapIncomeTaxPolicyTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaapEarningsPerSharePolicyTextBlock" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapEarningsPerSharePolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="loc_us-gaapConcentrationRiskCreditRisk" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapConcentrationRiskCreditRisk" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock" xlink:label="loc_CODXRecentlyAdoptedAccountingStandardsPolicyTextBlock" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_CODXRecentlyAdoptedAccountingStandardsPolicyTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables" xlink:title="00000022 - Disclosure - Goodwill and Intangible Assets (Tables)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="loc_us-gaapScheduleOfGoodwillTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapScheduleOfGoodwillTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/FairValueMeasurementsTables" xlink:title="00000023 - Disclosure - Fair Value Measurements (Tables)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RevenueTables" xlink:title="00000024 - Disclosure - Revenue (Tables)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaapRevenueFromContractWithCustomerAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="loc_us-gaapScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="loc_us-gaapContractWithCustomerAssetAndLiabilityTableTextBlock" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareTables" xlink:title="00000025 - Disclosure - Earnings Per Share (Tables)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationTables" xlink:title="00000026 - Disclosure - Stock-Based Compensation (Tables)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationActivityTableTextBlock" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationActivityTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/LeasesTables" xlink:title="00000027 - Disclosure - Leases (Tables)">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="loc_us-gaapLeaseCostTableTextBlock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLeaseCostTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" xlink:label="loc_CODXScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_CODXScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ScheduleOfOperatingLeaseTableTextBlock" xlink:label="loc_CODXScheduleOfOperatingLeaseTableTextBlock" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_CODXScheduleOfOperatingLeaseTableTextBlock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductInformationTable" xlink:label="loc_us-gaapScheduleOfProductInformationTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract" xlink:to="loc_us-gaapScheduleOfProductInformationTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductInformationLineItems" xlink:label="loc_us-gaapProductInformationLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapProductInformationLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="loc_srtRangeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_srtRangeAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="loc_srtRangeMember" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeAxis" xlink:to="loc_srtRangeMember" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="loc_srtMinimumMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMinimumMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="loc_srtMaximumMember" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtRangeMember" xlink:to="loc_srtMaximumMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_srtMajorCustomersAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThreeCustomersTogetherMember" xlink:label="loc_CODXThreeCustomersTogetherMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_CODXThreeCustomersTogetherMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoCustomersTogetherMember" xlink:label="loc_CODXTwoCustomersTogetherMember" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_CODXTwoCustomersTogetherMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaapSalesRevenueNetMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapSalesRevenueNetMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapAccountsReceivableMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaapConcentrationRiskByTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapConcentrationRiskByTypeAxis" order="40" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="loc_us-gaapCustomerConcentrationRiskMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskTypeDomain" xlink:to="loc_us-gaapCustomerConcentrationRiskMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfProductInformationTable" xlink:to="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" order="50" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="loc_us-gaapTypeOfAdoptionMember" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsForNewAccountingPronouncementsAxis" xlink:to="loc_us-gaapTypeOfAdoptionMember" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="loc_us-gaapAccountingStandardsUpdate201602Member" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapTypeOfAdoptionMember" xlink:to="loc_us-gaapAccountingStandardsUpdate201602Member" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="loc_us-gaapAccountsReceivableGrossCurrent" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAccountsReceivableGrossCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryFinishedGoods" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapInventoryRawMaterials" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="loc_us-gaapPropertyPlantAndEquipmentUsefulLife" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentUsefulLife" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapResearchAndDevelopmentExpense" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapConcentrationRiskPercentage1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapOperatingLeaseLiability" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapProductInformationLineItems" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative" xlink:title="00000029 - Disclosure - Business Combinations (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="loc_us-gaapBusinessCombinationAndAssetAcquisitionAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessCombinationAndAssetAcquisitionAbstract" xlink:to="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="loc_us-gaapBusinessAcquisitionLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="loc_us-gaapBusinessAcquisitionLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="loc_us-gaapBusinessAcquisitionAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="loc_us-gaapBusinessAcquisitionAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="loc_us-gaapBusinessAcquisitionAcquireeDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionAxis" xlink:to="loc_us-gaapBusinessAcquisitionAcquireeDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:label="loc_CODXAdvancedConceptionsIncAndIdahoMolecularIncMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionAcquireeDomain" xlink:to="loc_CODXAdvancedConceptionsIncAndIdahoMolecularIncMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesExchanged" xlink:label="loc_CODXStockIssuedDuringPeriodSharesExchanged" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_CODXStockIssuedDuringPeriodSharesExchanged" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesContingentConsideration" xlink:label="loc_CODXStockIssuedDuringPeriodSharesContingentConsideration" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_CODXStockIssuedDuringPeriodSharesContingentConsideration" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="loc_us-gaapEquityMethodInvestmentOwnershipPercentage" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapBusinessAcquisitionLineItems" xlink:to="loc_us-gaapEquityMethodInvestmentOwnershipPercentage" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfGoodwillDetails" xlink:title="00000030 - Disclosure - Schedule of Goodwill (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapGoodwill" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="loc_us-gaapGoodwillTranslationAndPurchaseAccountingAdjustments" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapGoodwillTranslationAndPurchaseAccountingAdjustments" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill_2" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapGoodwill_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails" xlink:title="00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember" xlink:label="loc_us-gaapInProcessResearchAndDevelopmentMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapInProcessResearchAndDevelopmentMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="loc_us-gaapNoncompeteAgreementsMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapNoncompeteAgreementsMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_IndefiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_CODXIndefiniteLivedIntangibleAssetUsefulLife" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_CODXIndefiniteLivedIntangibleAssetUsefulLife" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetUsefulLife" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetUsefulLife" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails" xlink:title="00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="loc_us-gaapFairValueByMeasurementFrequencyAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="loc_us-gaapFairValueByMeasurementFrequencyAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="loc_us-gaapFairValueMeasurementFrequencyDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueByMeasurementFrequencyAxis" xlink:to="loc_us-gaapFairValueMeasurementFrequencyDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="loc_us-gaapFairValueMeasurementsRecurringMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueMeasurementFrequencyDomain" xlink:to="loc_us-gaapFairValueMeasurementsRecurringMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueByFairValueHierarchyLevelAxis" xlink:to="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="loc_us-gaapFairValueInputsLevel1Member" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel1Member" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="loc_us-gaapFairValueInputsLevel2Member" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel2Member" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="loc_us-gaapFairValueInputsLevel3Member" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueMeasurementsFairValueHierarchyDomain" xlink:to="loc_us-gaapFairValueInputsLevel3Member" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToCommonStock" xlink:label="loc_CODXFairValueOfContingentConsiderationToCommonStock" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_CODXFairValueOfContingentConsiderationToCommonStock" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_FairValueOfContingentConsiderationToWarrants" xlink:label="loc_CODXFairValueOfContingentConsiderationToWarrants" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_CODXFairValueOfContingentConsiderationToWarrants" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesFairValueDisclosure" xlink:label="loc_us-gaapLiabilitiesFairValueDisclosure" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapLiabilitiesFairValueDisclosure" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketableSecurities" xlink:label="loc_us-gaapMarketableSecurities" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapMarketableSecurities" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsFairValueDisclosure" xlink:label="loc_us-gaapAssetsFairValueDisclosure" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="loc_us-gaapAssetsFairValueDisclosure" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails" xlink:title="00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaapBusinessCombinationContingentConsiderationLiabilityNoncurrent" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapBusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ContingentConsideredIssuedForBusinessAcquisitions" xlink:label="loc_CODXContingentConsideredIssuedForBusinessAcquisitions" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_CODXContingentConsideredIssuedForBusinessAcquisitions" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent" xlink:label="loc_us-gaapBusinessCombinationContingentConsiderationLiabilityNoncurrent_2" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapBusinessCombinationContingentConsiderationLiabilityNoncurrent_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails" xlink:title="00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:label="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="loc_us-gaapMeasurementInputTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable" xlink:to="loc_us-gaapMeasurementInputTypeAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="loc_us-gaapMeasurementInputTypeDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapMeasurementInputTypeAxis" xlink:to="loc_us-gaapMeasurementInputTypeDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputSharePriceMember" xlink:label="loc_us-gaapMeasurementInputSharePriceMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputSharePriceMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_MeasurementInputStrikePriceMember" xlink:label="loc_CODXMeasurementInputStrikePriceMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_CODXMeasurementInputStrikePriceMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputPriceVolatilityMember" xlink:label="loc_us-gaapMeasurementInputPriceVolatilityMember" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputPriceVolatilityMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MeasurementInputRiskFreeInterestRateMember" xlink:label="loc_us-gaapMeasurementInputRiskFreeInterestRateMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapMeasurementInputTypeDomain" xlink:to="loc_us-gaapMeasurementInputRiskFreeInterestRateMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingMeasurementInput" xlink:label="loc_us-gaapWarrantsAndRightsOutstandingMeasurementInput" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="loc_us-gaapWarrantsAndRightsOutstandingMeasurementInput" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantsAndRightsOutstandingTerm" xlink:label="loc_us-gaapWarrantsAndRightsOutstandingTerm" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems" xlink:to="loc_us-gaapWarrantsAndRightsOutstandingTerm" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails" xlink:title="00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaapRevenueFromContractWithCustomerAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="loc_us-gaapDisaggregationOfRevenueTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapDisaggregationOfRevenueTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="loc_us-gaapDisaggregationOfRevenueLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_us-gaapDisaggregationOfRevenueLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="loc_srtStatementGeographicalAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_srtStatementGeographicalAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="loc_srtSegmentGeographicalDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtStatementGeographicalAxis" xlink:to="loc_srtSegmentGeographicalDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_AmericasMember" xlink:label="loc_srtAmericasMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtSegmentGeographicalDomain" xlink:to="loc_srtAmericasMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_RestOfWorldMember" xlink:label="loc_CODXRestOfWorldMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtSegmentGeographicalDomain" xlink:to="loc_CODXRestOfWorldMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="loc_us-gaapSalesRevenueNetMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapSalesRevenueNetMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="loc_us-gaapConcentrationRiskByTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueTable" xlink:to="loc_us-gaapConcentrationRiskByTypeAxis" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="loc_us-gaapConcentrationRiskTypeDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByTypeAxis" xlink:to="loc_us-gaapConcentrationRiskTypeDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="loc_us-gaapGeographicConcentrationRiskMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskTypeDomain" xlink:to="loc_us-gaapGeographicConcentrationRiskMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="loc_us-gaapRevenueFromContractWithCustomerIncludingAssessedTax" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueLineItems" xlink:to="loc_us-gaapRevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisaggregationOfRevenueLineItems" xlink:to="loc_us-gaapConcentrationRiskPercentage1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails" xlink:title="00000036 - Disclosure - Schedule of Deferred Revenue (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="loc_us-gaapRevenueFromContractWithCustomerAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="loc_us-gaapContractWithCustomerLiability" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapContractWithCustomerLiability" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="loc_us-gaapContractWithCustomerLiabilityRevenueRecognized" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="loc_us-gaapContractWithCustomerLiability_2" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRevenueFromContractWithCustomerAbstract" xlink:to="loc_us-gaapContractWithCustomerLiability_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails" xlink:title="00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_WeightedAverageNumberOfBasicSharesOutstanding" xlink:label="loc_CODXWeightedAverageNumberOfBasicSharesOutstanding" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_CODXWeightedAverageNumberOfBasicSharesOutstanding" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="loc_us-gaapWeightedAverageNumberDilutedSharesOutstandingAdjustment" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapWeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_EarningsBasicPerShare" xlink:label="loc_CODXEarningsBasicPerShare" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_CODXEarningsBasicPerShare" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapEarningsPerShareDiluted" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/EarningsPerShareDetailsNarrative" xlink:title="00000038 - Disclosure - Earnings Per Share (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract" xlink:to="loc_us-gaapStatementTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantMember" xlink:label="loc_us-gaapWarrantMember" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapWarrantMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOptionActivityDetails" xlink:title="00000039 - Disclosure - Schedule of Option Activity (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:label="loc_CODXStockIssuedDuringPeriodSharesStockOptionsExercised1" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXStockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_2" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
      <link:presentationArc order="200" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
      <link:presentationArc order="210" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" />
      <link:presentationArc order="220" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
      <link:presentationArc order="230" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails" xlink:title="00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails" xlink:title="00000041 - Disclosure - Schedule of Warrant Activity (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="110" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="120" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
      <link:presentationArc order="130" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" />
      <link:presentationArc order="140" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
      <link:presentationArc order="150" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" />
      <link:presentationArc order="160" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" />
      <link:presentationArc order="170" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_2" />
      <link:presentationArc order="180" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
      <link:presentationArc order="190" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_CODXSharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails" xlink:title="00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="loc_us-gaapEmployeeStockOptionMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapEmployeeStockOptionMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="loc_us-gaapStockCompensationPlanMember" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapStockCompensationPlanMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="loc_us-gaapAllocatedShareBasedCompensationExpense" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapAllocatedShareBasedCompensationExpense" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative" xlink:title="00000043 - Disclosure - Stock-Based Compensation (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapPlanNameAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_TwoThousandFifteenLongTermIncentivePlanMember" xlink:label="loc_CODXTwoThousandFifteenLongTermIncentivePlanMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_CODXTwoThousandFifteenLongTermIncentivePlanMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapAwardTypeAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_StockOptionsMember" xlink:label="loc_CODXStockOptionsMember" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_CODXStockOptionsMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="loc_us-gaapRestrictedStockUnitsRSUMember" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockUnitsRSUMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember" xlink:label="loc_us-gaapRestrictedStockMember" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaapRestrictedStockMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="30" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WarrantMember" xlink:label="loc_us-gaapWarrantMember" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapWarrantMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="loc_srtTitleOfIndividualAxis" order="40" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ThirdPartiesMember" xlink:label="loc_CODXThirdPartiesMember" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_CODXThirdPartiesMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="loc_us-gaapCommonStockCapitalSharesReservedForFutureIssuance" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapCommonStockCapitalSharesReservedForFutureIssuance" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapEmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:label="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_CODXShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ClassOfWarrantExercisable" xlink:label="loc_CODXClassOfWarrantExercisable" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_CODXClassOfWarrantExercisable" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/IncomeTaxesDetailsNarrative" xlink:title="00000044 - Disclosure - Income Taxes (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="loc_us-gaapEffectiveIncomeTaxRateContinuingOperations" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract" xlink:to="loc_us-gaapEffectiveIncomeTaxRateContinuingOperations" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract" xlink:to="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:title="00000045 - Disclosure - Related Party Transactions (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="loc_us-gaapRelatedPartyTransactionsAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:label="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsAbstract" xlink:to="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" order="100" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:label="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" order="200" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="loc_us-gaapTypeOfArrangementAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="loc_us-gaapTypeOfArrangementAxis" order="10" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapTypeOfArrangementAxis" xlink:to="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_ExclusiveLicenseAgreementMember" xlink:label="loc_CODXExclusiveLicenseAgreementMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapArrangementsAndNonarrangementTransactionsMember" xlink:to="loc_CODXExclusiveLicenseAgreementMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="loc_srtTitleOfIndividualAxis" order="20" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
      <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="0" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DrBrentSatterfieldMember" xlink:label="loc_CODXDrBrentSatterfieldMember" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_CODXDrBrentSatterfieldMember" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedRoyaltiesCurrent" xlink:label="loc_us-gaapAccruedRoyaltiesCurrent" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapAccruedRoyaltiesCurrent" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRoyalties" xlink:label="loc_us-gaapPaymentsForRoyalties" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapPaymentsForRoyalties" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DueToRelatedPartiesCurrentAndNoncurrent" xlink:label="loc_us-gaapDueToRelatedPartiesCurrentAndNoncurrent" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="loc_us-gaapDueToRelatedPartiesCurrentAndNoncurrent" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails" xlink:title="00000046 - Disclosure - Schedule of Lease Expense (Details)">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseCost" xlink:label="loc_us-gaapOperatingLeaseCost" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseCost" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShortTermLeaseCost" xlink:label="loc_us-gaapShortTermLeaseCost" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapShortTermLeaseCost" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseCost" xlink:label="loc_us-gaapLeaseCost" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLeaseCost" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails" xlink:title="00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
      <link:presentationArc order="40" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:label="loc_CODXLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" />
      <link:presentationArc order="50" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_CODXLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" />
      <link:presentationArc order="60" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
      <link:presentationArc order="70" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability" />
      <link:presentationArc order="80" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseLiability" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
      <link:presentationArc order="90" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
      <link:presentationArc order="100" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails" xlink:title="00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments" xlink:label="loc_us-gaapOperatingLeasePayments" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeasePayments" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="loc_us-gaapOperatingLeaseWeightedAverageRemainingLeaseTerm1" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="loc_us-gaapOperatingLeaseWeightedAverageDiscountRatePercent" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails" xlink:title="00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)">
      <link:loc xlink:type="locator" xlink:href="codx-20220331.xsd#CODX_DisclosureLeasesAbstract" xlink:label="loc_CODXDisclosureLeasesAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:type="arc" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueCurrent" />
      <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueInTwoYears" />
      <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" />
      <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_CODXDisclosureLeasesAbstract" xlink:to="loc_us-gaapOperatingLeasesFutureMinimumPaymentsDue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    </link:presentationLink>
    <link:presentationLink xlink:type="extended" xlink:role="http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative" xlink:title="00000050 - Disclosure - Share Repurchase Program (Details Narrative)">
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="loc_us-gaapEquityAbstract" />
      <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:label="loc_us-gaapStockRepurchaseProgramAuthorizedAmount1" />
      <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityAbstract" xlink:to="loc_us-gaapStockRepurchaseProgramAuthorizedAmount1" xlink:type="arc" />
    </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303680792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover - shares<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>May 12, 2022</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Mar. 31,  2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-38148<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">CO-DIAGNOSTICS,
INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001692415<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">46-2609396<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">UT<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">2401
S. Foothill Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite D<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Salt Lake City<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">UT<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">84109<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">(801)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">438-1036<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common
    Stock<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CODX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityExTransitionPeriod', window );">Elected Not To Use the Extended Transition Period</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33,987,736<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityExTransitionPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 7A<br> -Section B<br> -Subsection 2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityExTransitionPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303773848">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Unaudited) - USD ($)<br></strong></div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 97,421,739<span></span>
</td>
<td class="nump">$ 88,607,234<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecuritiesCurrent', window );">Marketable investment securities</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">1,255,266<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net</a></td>
<td class="nump">21,662,403<span></span>
</td>
<td class="nump">20,839,182<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory</a></td>
<td class="nump">4,901,057<span></span>
</td>
<td class="nump">2,004,169<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">1,278,598<span></span>
</td>
<td class="nump">2,338,444<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NotesAndLoansReceivableNetCurrent', window );">Note receivable</a></td>
<td class="nump">75,000<span></span>
</td>
<td class="nump">75,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">125,338,797<span></span>
</td>
<td class="nump">115,119,295<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">2,252,853<span></span>
</td>
<td class="nump">1,933,216<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use asset</a></td>
<td class="nump">604,837<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">14,808,411<span></span>
</td>
<td class="nump">14,706,818<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">27,088,333<span></span>
</td>
<td class="nump">27,195,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RealEstateInvestmentsJointVentures', window );">Investment in joint venture</a></td>
<td class="nump">983,614<span></span>
</td>
<td class="nump">1,004,953<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetNoncurrent', window );">Note receivable</a></td>
<td class="nump">75,000<span></span>
</td>
<td class="nump">75,000<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">171,151,845<span></span>
</td>
<td class="nump">160,034,282<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">1,215,049<span></span>
</td>
<td class="nump">607,506<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses, current</a></td>
<td class="nump">2,613,218<span></span>
</td>
<td class="nump">3,859,652<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liability, current</a></td>
<td class="nump">283,299<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Contingent consideration liabilities, current</a></td>
<td class="nump">4,065,537<span></span>
</td>
<td class="nump">5,767,304<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxesPayableCurrent', window );">Income taxes payable</a></td>
<td class="nump">4,843,592<span></span>
</td>
<td class="nump">2,213,088<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">150,000<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">13,020,695<span></span>
</td>
<td class="nump">12,597,550<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrentAbstract', window );"><strong>Long-term liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_TaxesPayableNoncurrent', window );">Income taxes payable</a></td>
<td class="nump">1,284,745<span></span>
</td>
<td class="nump">1,067,853<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred tax liability</a></td>
<td class="nump">5,868,728<span></span>
</td>
<td class="nump">7,228,444<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liability</a></td>
<td class="nump">275,672<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent', window );">Contingent consideration liabilities</a></td>
<td class="nump">2,987,214<span></span>
</td>
<td class="nump">4,665,337<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrent', window );">Total long-term liabilities</a></td>
<td class="nump">10,416,359<span></span>
</td>
<td class="nump">12,961,634<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">23,437,054<span></span>
</td>
<td class="nump">25,559,184<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 12)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#8217; equity</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Convertible preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $0.001 par value; 100,000,000 shares authorized; 33,984,068 and 33,819,862 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively</a></td>
<td class="nump">33,984<span></span>
</td>
<td class="nump">33,820<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">81,796,933<span></span>
</td>
<td class="nump">80,271,999<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated earnings</a></td>
<td class="nump">65,883,874<span></span>
</td>
<td class="nump">54,169,279<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">147,714,791<span></span>
</td>
<td class="nump">134,475,098<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders&#8217; equity</a></td>
<td class="nump">$ 171,151,845<span></span>
</td>
<td class="nump">$ 160,034,282<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_TaxesPayableNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Taxes payable non current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_TaxesPayableNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized from contingent consideration in asset acquisition, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 50<br> -Section 15<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=6911878&amp;loc=d3e8732-128492<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized from contingent consideration in asset acquisition, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 50<br> -Section 15<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=6911878&amp;loc=d3e8732-128492<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MarketableSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in marketable security, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MarketableSecuritiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesAndLoansReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amortized cost, after allowance for credit loss, of financing receivable classified as current. Excludes net investment in lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(7))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesAndLoansReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RealEstateInvestmentsJointVentures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The book value of investments in real estate joint ventures including direct and indirect investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.1(d))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RealEstateInvestmentsJointVentures</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxesPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxesPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303691176">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Unaudited) (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Convertible preferred stock, par value</a></td>
<td class="nump">$ 0.001<span></span>
</td>
<td class="nump">$ 0.001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Convertible preferred stock , shares authorized</a></td>
<td class="nump">5,000,000<span></span>
</td>
<td class="nump">5,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Convertible preferred stock, shares issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Convertible preferred stock, shares outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value</a></td>
<td class="nump">$ 0.001<span></span>
</td>
<td class="nump">$ 0.001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</a></td>
<td class="nump">100,000,000<span></span>
</td>
<td class="nump">100,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued</a></td>
<td class="nump">33,984,068<span></span>
</td>
<td class="nump">33,819,862<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding</a></td>
<td class="nump">33,984,068<span></span>
</td>
<td class="nump">33,819,862<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306797464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations (Unaudited) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 22,699,044<span></span>
</td>
<td class="nump">$ 20,024,769<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of revenue</a></td>
<td class="nump">3,281,951<span></span>
</td>
<td class="nump">3,272,565<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">19,417,093<span></span>
</td>
<td class="nump">16,752,204<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">2,652,148<span></span>
</td>
<td class="nump">1,197,546<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">2,922,195<span></span>
</td>
<td class="nump">2,935,689<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">3,771,327<span></span>
</td>
<td class="nump">2,217,063<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">247,264<span></span>
</td>
<td class="nump">67,005<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Total operating expenses</a></td>
<td class="nump">9,592,934<span></span>
</td>
<td class="nump">6,417,303<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Income from operations</a></td>
<td class="nump">9,824,159<span></span>
</td>
<td class="nump">10,334,901<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpenseAbstract', window );"><strong>Other income (expense)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestIncomeOther', window );">Interest income</a></td>
<td class="nump">11,393<span></span>
</td>
<td class="nump">14,657<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of assets</a></td>
<td class="num">(93,421)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_GainOnRemeasurementOfAcquisitionContingencies', window );">Gain on remeasurement of acquisition contingencies</a></td>
<td class="nump">3,379,890<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_LossOnEquityMethodInvestmentInJointVenture', window );">(Loss) on equity method investment in joint venture</a></td>
<td class="num">(21,339)<span></span>
</td>
<td class="num">(464,943)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total other income (expense)</a></td>
<td class="nump">3,276,523<span></span>
</td>
<td class="num">(450,286)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">13,100,682<span></span>
</td>
<td class="nump">9,884,615<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax provision</a></td>
<td class="nump">1,386,087<span></span>
</td>
<td class="nump">1,985,640<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 11,714,595<span></span>
</td>
<td class="nump">$ 7,898,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAbstract', window );"><strong>Earnings per common share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="nump">$ 0.35<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted</a></td>
<td class="nump">$ 0.34<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Weighted average shares outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">33,935,570<span></span>
</td>
<td class="nump">28,662,885<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">34,711,476<span></span>
</td>
<td class="nump">30,002,729<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_GainOnRemeasurementOfAcquisitionContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gain on remeasurement of acquisition contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_GainOnRemeasurementOfAcquisitionContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_LossOnEquityMethodInvestmentInJointVenture">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Loss on equity method investment in joint venture</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_LossOnEquityMethodInvestmentInJointVenture</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate cost of goods produced and sold and services rendered during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941158&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestIncomeOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of interest income earned from interest bearing assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303939032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows (Unaudited) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 11,714,595<span></span>
</td>
<td class="nump">$ 7,898,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to cash used in operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">247,264<span></span>
</td>
<td class="nump">67,005<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation expense</a></td>
<td class="nump">1,375,097<span></span>
</td>
<td class="nump">1,513,012<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_GainOnRemeasurementOfAcquisitionContingencies', window );">Change in fair value of acquisition contingencies</a></td>
<td class="num">(3,379,890)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_NoncashLeaseExpense', window );">Non-cash lease expense</a></td>
<td class="nump">8,762<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfInvestments', window );">Loss from equity method investment</a></td>
<td class="nump">21,339<span></span>
</td>
<td class="nump">464,943<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of assets</a></td>
<td class="nump">93,421<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes</a></td>
<td class="num">(1,359,716)<span></span>
</td>
<td class="nump">302,399<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense</a></td>
<td class="nump">47,862<span></span>
</td>
<td class="nump">79,700<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="num">(871,083)<span></span>
</td>
<td class="num">(59,994)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidExpense', window );">Prepaid expenses</a></td>
<td class="nump">1,042,932<span></span>
</td>
<td class="num">(114,473)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="num">(3,088,944)<span></span>
</td>
<td class="nump">1,797,581<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="num">(150,000)<span></span>
</td>
<td class="num">(146,516)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Income taxes payable</a></td>
<td class="nump">2,745,803<span></span>
</td>
<td class="nump">1,128,438<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities', window );">Accounts payable, accrued expenses and other liabilities</a></td>
<td class="num">(641,604)<span></span>
</td>
<td class="num">(661,115)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">7,805,838<span></span>
</td>
<td class="nump">12,269,955<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property and equipment</a></td>
<td class="num">(396,600)<span></span>
</td>
<td class="num">(139,558)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities', window );">Proceeds from maturities of marketable investment securities</a></td>
<td class="nump">1,255,266<span></span>
</td>
<td class="nump">2,032,802<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_PaymentsToAcquireInterestInJointVentures', window );">Investment in joint venture</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">500,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash provided by investing activities</a></td>
<td class="nump">858,666<span></span>
</td>
<td class="nump">2,393,244<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ProceedsFromExerciseOfOptionsAndWarrants', window );">Proceeds from exercise of options and warrants</a></td>
<td class="nump">150,001<span></span>
</td>
<td class="nump">148,981<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by financing activities</a></td>
<td class="nump">150,001<span></span>
</td>
<td class="nump">148,981<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net increase in cash and cash equivalents</a></td>
<td class="nump">8,814,505<span></span>
</td>
<td class="nump">14,812,180<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash and cash equivalents at beginning of period</a></td>
<td class="nump">88,607,234<span></span>
</td>
<td class="nump">42,976,713<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash and cash equivalents at end of period</a></td>
<td class="nump">97,421,739<span></span>
</td>
<td class="nump">57,788,893<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosure of cash flow information</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest paid</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes paid</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Supplemental disclosure of non-cash investing and financing transactions</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment', window );">Inventory moved to property, plant and equipment</a></td>
<td class="nump">192,056<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets obtained in exchange for new operating lease liabilities</a></td>
<td class="nump">$ 681,327<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_GainOnRemeasurementOfAcquisitionContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gain on remeasurement of acquisition contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_GainOnRemeasurementOfAcquisitionContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_NoncashLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Noncash lease expense</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_NoncashLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Noncash or part noncash inventory moved to property plant and equipment</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_PaymentsToAcquireInterestInJointVentures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Payments to acquire interest in joint ventures</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_PaymentsToAcquireInterestInJointVentures</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ProceedsFromExerciseOfOptionsAndWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Proceeds from exercise of options and warrants</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ProceedsFromExerciseOfOptionsAndWarrants</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=SL98516268-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126938201&amp;loc=d3e55415-109406<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4297-108586<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3367-108585<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the aggregate amount received by the entity through sale or maturity of marketable securities (held-to-maturity or available-for-sale) during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in right-of-use asset obtained in exchange for operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021301737624">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)<br></strong></div></th>
<th class="th">
<div>Convertible Preferred Stock [Member] </div>
<div>Preferred Stock [Member]</div>
</th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance, value at Dec. 31, 2020</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 28,558<span></span>
</td>
<td class="nump">$ 49,157,236<span></span>
</td>
<td class="nump">$ 17,510,715<span></span>
</td>
<td class="nump">$ 66,696,509<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, shares at Dec. 31, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,558,033<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Common stock issued for option exercises</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 66<span></span>
</td>
<td class="nump">148,914<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">148,980<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Common stock issued for option exercises, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65,891<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross', window );">Stock-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 42<span></span>
</td>
<td class="nump">1,512,970<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,513,012<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross', window );">Stock-based compensation expense, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">73,040<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">7,898,975<span></span>
</td>
<td class="nump">7,898,975<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance, value at Mar. 31, 2021</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 28,666<span></span>
</td>
<td class="nump">50,819,120<span></span>
</td>
<td class="nump">25,409,690<span></span>
</td>
<td class="nump">76,257,476<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, shares at Mar. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,696,964<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance, value at Dec. 31, 2021</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 33,820<span></span>
</td>
<td class="nump">80,271,999<span></span>
</td>
<td class="nump">54,169,279<span></span>
</td>
<td class="nump">134,475,098<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, shares at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33,819,862<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Common stock issued for option exercises</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 45<span></span>
</td>
<td class="nump">49,956<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">50,001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Common stock issued for option exercises, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">45,456<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueOther', window );">Common stock issued for warrant exercises</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 50<span></span>
</td>
<td class="nump">99,950<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Common stock issued for warrant exercises, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross', window );">Stock-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 69<span></span>
</td>
<td class="nump">1,375,028<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,375,097<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross', window );">Stock-based compensation expense, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">11,714,595<span></span>
</td>
<td class="nump">11,714,595<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance, value at Mar. 31, 2022</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 33,984<span></span>
</td>
<td class="nump">$ 81,796,933<span></span>
</td>
<td class="nump">$ 65,883,874<span></span>
</td>
<td class="nump">$ 147,714,791<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, shares at Mar. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33,984,068<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of stock issued attributable to transactions classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of shares of stock issued attributable to transactions classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306869944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Overview and Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Overview and Basis of Presentation</a></td>
<td class="text"><p id="xdx_80F_eus-gaap--BusinessDescriptionAndBasisOfPresentationTextBlock_zz9XBp7tea75" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
1 &#8211; <span id="xdx_822_zaRgwhQKhTU6">Overview and Basis of Presentation</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Description
of Business</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 27.35pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Co-Diagnostics,
Inc., a Utah corporation (the &#8220;Company&#8221;, &#8220;Co-Dx&#8221; or &#8220;CODX&#8221;), develops, manufactures and sells
reagents used for diagnostic tests that function via the detection and/or analysis of nucleic acid molecules (DNA or RNA), including
robust and innovative molecular tools for detection of infectious diseases, liquid biopsy for cancer screening, and agricultural applications.
In connection with the sale of our tests we may sell diagnostic equipment from other manufacturers as self-contained lab systems (which
we refer to as the &#8220;MDx Device&#8221;). We are also developing a unique, groundbreaking portable PCR testing platform (the &#8220;Co-Dx
PCR home testing platform&#8221;) designed to bring affordable, reliable gold-standard polymerase chain reaction (&#8220;PCR&#8221;)
to patients in point-of-care and even at-home settings.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Unaudited
Consolidated Financial Statements</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
accompanying unaudited consolidated financial statements of the Company have been prepared in accordance with accounting principles generally
accepted in the United States of America for interim financial information and with the instructions to Form 10-Q as they are prescribed
for smaller reporting companies and emerging growth companies. Accordingly, they do not include all the information and footnotes required
by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of management,
all adjustments (consisting of normal recurring accruals) considered necessary to make the financial statements not misleading have been
included. Operating results for the three months ended March 31, 2022 are not necessarily indicative of the results that may be expected
for the year ending December 31, 2022. These statements should be read in conjunction with the Company&#8217;s audited financial statements
and related notes for the year ended December 31, 2021, included in the Company&#8217;s Annual Report on Form 10-K filed on March 24,
2022.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Use
of Estimates</b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
preparation of financial statements in conformity with generally accepted accounting principles requires management to make estimates
and assumptions that affect the amounts reported in the financial statements and the accompanying notes. Such estimates include receivables
and other long-lived assets, legal and regulatory contingencies, income taxes, share based arrangements, and others. These estimates
and assumptions are based on management&#8217;s best estimates and judgments. Actual amounts and results could differ from those estimates.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI https://asc.fasb.org/topic&amp;trid=2122369<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -URI https://asc.fasb.org/topic&amp;trid=2122149<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI https://asc.fasb.org/topic&amp;trid=2134479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306552424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies</a></td>
<td class="text"><p id="xdx_80F_eus-gaap--SignificantAccountingPoliciesTextBlock_zB6FigEwh2B4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
2 &#8211; <span id="xdx_82A_zJfeACbnJRze">Summary of Significant Accounting Policies</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_843_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zgP1fzlAOOTe" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Cash
and Cash Equivalents</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Cash
and cash equivalents consist of cash on hand, money market funds and highly liquid investments with an original maturity date of 90 days
or less from the date of purchase. The fair value of cash equivalents approximated their carrying value as of March 31, 2022 and December
31, 2021. The Company has its cash and cash equivalents with a large creditworthy financial institution and the balance exceeded federally
insured limits. The Company has not experienced any losses in such accounts, and management believes the Company is not exposed to any
significant credit risk on cash and cash equivalents.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_845_eus-gaap--MarketableSecuritiesPolicy_zB1GZqFRT1wb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Marketable
Investment Securities</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s marketable investment securities are comprised of investments in certificates of deposit. The Company determines the
appropriate classification of its marketable investment securities at the time of purchase and reevaluates such designation at each balance
sheet date. The Company has classified and accounted for its marketable investment securities as available-for-sale securities as the
Company may sell these securities at any time for use in its current operations or for other purposes, even prior to maturity. As a result,
the Company classifies its marketable investment securities, including securities with stated maturities beyond twelve months, within
current assets in the consolidated balance sheets. Any unrealized gains or losses are immaterial.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zyTPsu5XMaJ8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Accounts
Receivable</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Trade
accounts receivable are recorded at the invoiced amount (net of allowance) and do not bear interest. The Company maintains an allowance
for doubtful accounts for amounts the Company does not expect to collect. In establishing the required allowance, management considers
historical losses, current market condition, customers&#8217; financial condition, the age of receivables, and current payment patterns.
Account balances are written off against the allowance once the receivable is deemed uncollectible. Recoveries of trade receivables previously
written off are recorded when collected. At March 31, 2022, total accounts receivable was $<span id="xdx_905_eus-gaap--AccountsReceivableGrossCurrent_iI_c20220331_zxP07cEI8Oki" title="Accounts receivable">22,379,861</span> with an allowance for uncollectable
accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20220331_zC5TNQyfd03a" title="Doubtful accounts">717,458</span> resulting in a net amount of $<span id="xdx_902_eus-gaap--AccountsReceivableNetCurrent_iI_c20220331_zPrkPnLS3Pv5" title="Accounts receivable, net">21,662,403</span>. At December 31, 2021, total accounts receivable was $<span id="xdx_909_eus-gaap--AccountsReceivableGrossCurrent_iI_c20211231_zaPHySI4oaB1">21,508,779</span> with an
allowance for uncollectable accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20211231_zxShRG1Rqs5e">669,597</span> resulting in a net amount of $<span id="xdx_906_eus-gaap--AccountsReceivableNetCurrent_iI_c20211231_zHw3ELPKGTrc">20,839,182</span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_844_eus-gaap--EquityMethodInvestmentsPolicy_z5B1vrwVJLQ1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Equity-Method
Investments</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
equity method investments are initially recorded at cost and are included in other long-term assets in the accompanying consolidated
balance sheet. We adjust the carrying value of our investment based on our share of the earnings or losses in the periods which they
are reported by the investee until the carrying amount is zero. The earnings or losses are included in other income (expense) in the
accompanying consolidated statements of operations.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_843_eus-gaap--InventoryPolicyTextBlock_zIoOuJSf0Oxb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Inventory</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inventory
is stated at the lower of cost or net-realizable value. Inventory cost is determined on a first-in first-out basis that approximates
average cost in accordance with ASC 330-10-30-12. At March 31, 2022, the Company had $<span id="xdx_904_eus-gaap--InventoryNet_iI_c20220331_zWeIZTfEDPwc" title="Inventory">4,901,057</span> in inventory, of which $<span id="xdx_904_eus-gaap--InventoryFinishedGoods_iI_c20220331_zrIBb3uaUXMb" title="Inventory finished goods">4,119,549</span> was
finished goods and $<span id="xdx_909_eus-gaap--InventoryRawMaterials_iI_c20220331_zQYNiHkaRDw6" title="Inventory raw materials">781,508</span> was raw materials. At December 31, 2021, the Company had $<span id="xdx_900_eus-gaap--InventoryNet_iI_c20211231_z55GydraidKi">2,004,169</span> in inventory, of which $<span id="xdx_90A_eus-gaap--InventoryFinishedGoods_iI_c20211231_z3p9z2hYbej">983,088</span> was finished
goods and $<span id="xdx_903_eus-gaap--InventoryRawMaterials_iI_c20211231_zwVFypuKCfp4">1,021,081</span> was raw materials. The Company establishes reserves to reduce slow-moving, obsolete, or unusable inventories to
their estimated useful or scrap values.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_845_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zfvh6Drr6V6g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Property
and Equipment</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Property
and equipment are stated at cost less accumulated depreciation and amortization. Depreciation is provided using the straight-line method
over the estimated useful lives of the property, generally from <span id="xdx_90B_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dxL_c20220101__20220331__srt--RangeAxis__srt--MinimumMember_z9D5FsdDpQ15" title="::XDX::P3Y"><span style="-sec-ix-hidden: xdx2ixbrl0496">three</span></span> to <span id="xdx_90E_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dc_c20220101__20220331__srt--RangeAxis__srt--MaximumMember_zK8pvEATGOl7" title="Estimated useful life of property">five years</span>. Repairs and maintenance costs are expensed as incurred
except when such repairs significantly add to the useful life or productive capacity of the asset, in which case the repairs are capitalized.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company reviews its long-lived assets, including property and equipment, for impairment whenever an event or change in facts and circumstances
indicates that their carrying amounts may not be recoverable. Recoverability of these assets is measured by comparing the carrying amount
to the estimated undiscounted future cash flows expected to be generated. If the carrying amount exceeds the undiscounted cash flows,
the assets are determined to be impaired and an impairment charge is recognized as the amount by which the carrying amount exceeds fair
value.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_840_eus-gaap--BusinessCombinationsPolicy_z7LzhubAB0Sf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Business
Combinations</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
estimate the fair value of assets acquired and liabilities assumed in a business combination. Goodwill as of the acquisition date is
measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities
assumed. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets.
Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and
unpredictable, and as a result, actual results may differ from estimates.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p id="xdx_845_eus-gaap--LesseeLeasesPolicyTextBlock_zC983qpkCyib" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Leases</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
described in &#8220;Recently Adopted Accounting Standards&#8221; below, the Company adopted ASC 842, Leases (&#8220;ASC 842&#8221;) effective
January 1, 2022. Under ASC 842, the Company determines if an arrangement is or contains a lease at inception by assessing whether the
arrangement contains an identified asset and whether it has the right to control the identified asset. Right-of-use (ROU) assets represent
the Company&#8217;s right to use an underlying asset for the lease term and lease liabilities represent the Company&#8217;s obligation
to make lease payments arising from the lease. Lease liabilities are recognized at the lease commencement date based on the present value
of future lease payments over the lease term. ROU assets are based on the measurement of the lease liability and also include any lease
payments made prior to or on lease commencement and exclude lease incentives and initial direct costs incurred, as applicable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
the implicit rate in the Company&#8217;s leases is generally unknown, the Company uses its incremental borrowing rate based on the information
available at the lease commencement date in determining the present value of future lease payments. The Company considers its credit
risk, term of the lease, total lease payments and adjusts for the impacts of collateral, as necessary, when calculating its incremental
borrowing rates. The Company evaluates renewal options at lease inception and on an ongoing basis and includes renewal options that it
is reasonably certain to exercise in its expected lease terms when classifying leases and measuring lease liabilities. Lease costs for
the Company&#8217;s operating leases are recognized on a straight-line basis within operating expenses and cost of revenue over the reasonably
assured lease term.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has elected to not separate lease and non-lease components for leases of office space and, as a result, accounts for any lease
and non-lease components for office space as a single lease component, to the extent they are fixed. Non-lease components that are not
fixed are expensed as incurred as variable lease payments. The Company&#8217;s office leases typically include non-lease components such
as common-area maintenance costs. The Company has also elected to not apply the recognition requirement to any leases within its existing
classes of assets with a term of 12 months or less.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zAtkVYfTVgP3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Revenue
Recognition</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company generates revenue from product sales and license sales. The Company recognizes revenue when all of the following criteria are
satisfied: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or
services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction
price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations; and
(v) recognition of revenue when, or as the Company satisfies each performance obligation.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company constrains revenue by giving consideration to factors that could otherwise lead to a probable reversal of revenue. The Company
records any payments received from customers prior to the Company fulfilling its performance obligation(s) as deferred revenue.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_84D_eus-gaap--RevenueFromContractWithCustomerPolicyTextBlock_zcppXrJSBXXd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Deferred
Revenue</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Deferred
revenue primarily consists of payments received from customers prior to the Company fulfilling its performance obligation of providing
the product. When this occurs, the Company records a contract liability as deferred revenue. Deferred revenue is recognized as revenue
as the related performance obligations are satisfied.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_841_eus-gaap--ResearchAndDevelopmentExpensePolicy_zzsm7sYzTWsa" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Research
and Development</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Research
and development costs are expensed when incurred. For the three months ended March 31, 2022, the Company expensed $<span id="xdx_905_eus-gaap--ResearchAndDevelopmentExpense_c20220101__20220331_zoT4Gpan3zig" title="Research and development">3,771,327</span> of research
and development costs, respectively. For the three months ended March 31, 2021, the Company expensed $<span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20210101__20210331_zxyNCpkq2ayl">2,217,063</span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_847_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zLD9KSnNIb4d" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock-based
Compensation</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has granted stock-based awards, including restricted stock, stock options, stock warrants and restricted stock units (&#8220;RSUs&#8221;),
to its employees, certain consultants and members of its board of directors. The Company records stock-based compensation based on the
grant date fair value of the awards and recognizes the fair value of those awards as expense using the straight-line method over the
requisite service period of the award. The Company estimates the grant date fair value of stock options using the Black-Scholes option-pricing
model. When an award is forfeited prior to the vesting date, the Company recognizes an adjustment for the previously recognized expense
in the period of the forfeiture.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_84D_eus-gaap--IncomeTaxPolicyTextBlock_zEKwmtpEkMmk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Income
Taxes</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company accounts for income taxes in accordance with the liability method of accounting for income taxes. Under this method, deferred
income tax assets and deferred income tax liabilities represent the tax effect of temporary differences between financial reporting and
tax reporting measured at enacted tax rates in effect for the year in which the differences are expected to reverse. The Company recognizes
only the impact of tax positions that, based on their technical merits, are more likely than not to be sustained upon an audit by the
taxing authority.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Valuation
allowances are provided when it is more-likely-than-not that some or all of the deferred income tax assets may not be realized. In assessing
the need for a valuation allowance, the Company has considered its historical levels of income, expectations of future taxable income
and ongoing tax planning strategies.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Developing
the provision for income taxes, including the effective tax rate and analysis of potential tax exposure items, if any, requires significant
judgment and expertise in federal and state income tax laws, regulations and strategies, including the determination of deferred income
tax assets and liabilities and any estimated valuation allowances deemed necessary to value deferred income tax assets. Judgments and
tax strategies are subject to audit by various taxing authorities. While the Company believes it has no significant uncertain income
tax positions in the consolidated financial statements, adverse determinations by these taxing authorities could have a material adverse
effect on the consolidated financial positions, result of operations, or cash flows.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_847_eus-gaap--EarningsPerSharePolicyTextBlock_ziD63g3a2Ksk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Net
Income per Share</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Basic
net income or loss per common share is computed by dividing net income or loss applicable to common shareholders by the weighted average
number of shares outstanding during each period.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Diluted
net income or loss per share is computed by dividing net income or loss attributable to common stockholders by the weighted-average number
of shares of common stock outstanding during the period increased by common shares that could be issued upon conversion or exercise of
other outstanding securities to the extent those additional common shares would be dilutive. The dilutive effect of potentially dilutive
securities is reflected in diluted net income or loss per share by application of the treasury stock method. During periods when the
Company is in a net loss position, basic net loss per share is the same as diluted net loss per share as the effects of potentially dilutive
securities are anti-dilutive.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_849_eus-gaap--ConcentrationRiskCreditRisk_zWYCWNbSntV8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Concentrations
Risk and Significant Customers</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company had certain customers which are each responsible for generating 10% or more of the total revenue for the three months ended March
31, 2022. Three customers together accounted for approximately <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zGhPwyoulaY5" title="Concentration risk percentage">54</span>% and <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zaj1LJyqynBe" title="Concentration risk percentage">57</span>% of total revenue for the three months ended March 31, 2022
and March 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Two
customers each accounted for more than 10% of accounts receivable at March 31, 2022 and December 31, 2021. These two customers together
accounted for approximately <span id="xdx_906_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_z71rrH0xurDh" title="Concentration risk percentage">62</span>% and <span id="xdx_905_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20211231__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_ziYiggZXUXhi" title="Concentration risk percentage">66</span>% of accounts receivable at March 31, 2022 and December 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_842_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zyT1QLCRuJac" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recent
Accounting Pronouncements</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">From
time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (&#8220;FASB&#8221;) that are adopted
by the Company as of the specified effective date. If not discussed, management believes that the impact of recently issued standards,
which are not yet effective, will not have a material impact on the Company&#8217;s financial statements upon adoption.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_847_ecustom--RecentlyAdoptedAccountingStandardsPolicyTextBlock_zE3ij2MeBTIj" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recently
Adopted Accounting Standards</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
June 2016, the FASB issued ASU No. 2016-13, Financial Instruments-Credit Losses (Topic 326) (&#8220;ASU 2016-13&#8221;), which requires
the measurement and recognition of expected credit losses for certain financial instruments, which includes the Company&#8217;s accounts
receivable. ASU 2016-13 replaces the existing incurred loss impairment model with an expected loss methodology, which will result in
more timely recognition of credit losses. The Company adopted ASU 2016-13 on January 1, 2022. The adoption did not have an impact on
the Company&#8217;s financial statements.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
February 2016, the FASB issued ASU No. 2016-02, Leases (Topic 842) (&#8220;ASU 2016-02&#8221;), which requires a lessee to recognize
most leases on the balance sheet as lease liabilities with corresponding right-of-use assets. The objective of ASU 2016-02 is to increase
transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and disclosing
key information about leasing arrangements. The recognized lease liabilities and lease assets represent the obligation to make payments
and the right to use or control the use of a specified asset for the lease term, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
January 1, 2022, the Company adopted Topic 842 using the modified retrospective approach with the effective date as the date of initial
application. Consequently, results for the three months ended March 31, 2022 are presented under Topic 842. No prior period amounts were
adjusted and continue to be reported in accordance with previous lease guidance, ASC Topic 840, Leases. The Company elected the practical
expedients available under the provisions of the new standard, including not reassessing whether expired or existing contracts are or
contain leases; not reassessing the classification of expired or existing leases; and not reassessing the initial direct cost for any
existing leases. Upon adoption, the Company recognized an operating lease liability of $<span id="xdx_90B_eus-gaap--OperatingLeaseLiability_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zrmqbtYG3kd5" title="Operating lease liability">626,699</span> and a corresponding operating right-of-use
asset of $<span id="xdx_90F_eus-gaap--OperatingLeaseRightOfUseAsset_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zmvU4EdFzMed" title="Operating right use of asset">681,327</span>.</span></p>

<p id="xdx_85F_zxmbHXaOSlH7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18726-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI https://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306431208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Combinations<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Business Combination and Asset Acquisition [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Combinations</a></td>
<td class="text"><p id="xdx_802_eus-gaap--BusinessCombinationDisclosureTextBlock_zezkZV4G19X7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
3 &#8211; <span id="xdx_82A_znBmDVcai0xk">Business Combinations</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
December 31, 2021, the Company completed its acquisition of Advanced Conceptions, Inc. (&#8220;ACI&#8221;) and Idaho Molecular Inc. (&#8220;IdMo&#8221;),
which were related entities developing, with the Company, an at-home/point-of-care medical diagnostic device. Upon the completion of
the acquisition, all outstanding ACI and Idaho Molecular common stock was exchanged for approximately <span id="xdx_90C_ecustom--StockIssuedDuringPeriodSharesExchanged_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zah1btN5jz1j" title="Number of shares exchanged">3.2</span> million shares of the Company&#8217;s
common stock and contingent consideration that includes up to approximately <span id="xdx_904_ecustom--StockIssuedDuringPeriodSharesContingentConsideration_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_z2wzDq5nLask" title="Number of shares on contingent consideration">1.4</span> million shares and approximately <span id="xdx_90F_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zXgz8Km99jFd" title="Warrants to purchase shares of common stock">456,000</span> warrants to
purchase shares of the Company&#8217;s common stock. The contingent consideration is based on the achievement of certain milestones,
which include regulatory approval for identified products, as well as production and net revenue targets. Upon the completion of the
acquisition, both ACI and IdMo became <span id="xdx_903_eus-gaap--EquityMethodInvestmentOwnershipPercentage_iI_pid_dp_uPure_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zvJ2mq5EbCUl" title="Equity method investment ownership percentage">100</span>% wholly-owned subsidiaries of the Company.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI https://asc.fasb.org/topic&amp;trid=2303972<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128092470&amp;loc=d3e4946-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306511672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock', window );">Goodwill and Intangible Assets</a></td>
<td class="text"><p id="xdx_808_eus-gaap--GoodwillAndIntangibleAssetsDisclosureTextBlock_zh0gcNIU0vek" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
4 &#8211; <span id="xdx_827_zt0ipSyKNAE">Goodwill and Intangible Assets</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Goodwill</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Goodwill
represents the excess of purchase price and related costs over the value assigned to net tangible and identifiable intangible assets
acquired in business combinations. The following table presents the changes in the carrying amount of goodwill for the three months ended
March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89E_eus-gaap--ScheduleOfGoodwillTextBlock_zNKvrRjW2GS9" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span id="xdx_8B1_zChWuxf0sQvi" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt">Schedule
of Goodwill</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 80%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><span id="xdx_906_eus-gaap--Goodwill_iS_c20220101__20220331_zoVCUAo7egf3" title="Goodwil - beginning">14,706,818</span></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Measurement period adjustments</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><span id="xdx_90B_eus-gaap--GoodwillTranslationAndPurchaseAccountingAdjustments_c20220101__20220331_zHygSGmTLytk" title="Measurement period adjustments">101,593</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span id="xdx_90E_eus-gaap--Goodwill_iE_c20220101__20220331_zRLiEXrabRhe" title="Goodwill - Ending">14,808,411</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A8_zIF5JEsi2yfj" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Intangible
Assets, Net</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89F_eus-gaap--ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_zJa2P4Y8T406" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table presents details of the Company&#8217;s intangible assets, excluding goodwill:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BF_zgE3NboDLkA8" style="display: none">Schedule
of Intangible Assets, Net</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F57_zBFu4bsO6F3f" style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_90C_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zDKmPNrA2Mje" title="Estimated useful lives in years, term">Indefinite</span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zkmfhabgZoP3" style="width: 12%; text-align: right" title="Intangible assets, gross">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_z6Z76aPq5Hpj" style="width: 12%; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0563">-</span></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zvokvOusumng" style="width: 12%; text-align: right" title="Intangible assets, net">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_90D_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zzdfILwGsPYc" title="Estimated useful lives in years">2.7</span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_zohu0FcEjMYf" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_980_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z4Ei9KS0LzZ8" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization">(106,667</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z53hK2brfdw2" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net">987,333</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331_zkagNvevVauj" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331_zXLIfDm0qjnj" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization">(106,667</td><td style="padding-bottom: 2.5pt; text-align: left">)</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98B_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331_zNQux8I6Hn0e" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net">27,088,333</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F5F_zELYSdNrVfW1" style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_903_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zJx29r9pxK9g" title="Estimated useful lives in years, term">Indefinite</span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98B_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, gross">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zPXKJERjBEXd" style="width: 12%; text-align: right" title="Less accumulated amortization">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0585">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, net">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_901_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zpya74ClTkIe" title="Estimated useful lives in years">2.7</span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z74rMJDRk40h" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0593">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: center">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_982_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20211231_zCJzpe3CXbJa" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231_zsnEOWSQhXQb" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0599">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_c20211231_zHPEkGXDPGm8" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
</table>

<p style="margin: 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"/>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 6pt; width: 100%"><tr style="vertical-align: top; text-align: justify">
<td id="xdx_F04_zWP69sqgYFp1" style="width: 15pt; text-align: right">(1)</td><td style="width: 5pt"/><td id="xdx_F1D_zBPHoGCJYju4" style="text-align: justify">Based on weighted-average useful life established as of the acquisition date.</td>
</tr></table>



<p id="xdx_8A1_zUOYHPzJgJ2e" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI https://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306431208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p id="xdx_80E_eus-gaap--FairValueDisclosuresTextBlock_ziMe1JWkYAM1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
5 &#8211; <span id="xdx_821_zWcDPj3icLLa">Fair Value Measurements</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company measures and records certain financial assets at fair value on a recurring basis. Fair value is based on the price that would
be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement
date.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s financial instruments that are measured at fair value on a recurring basis consist of money market funds. The following
three levels of inputs are used to measure the fair value of financial instruments:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
1: Quoted market prices in active markets for identical assets or liabilities.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
2: Observable market-based inputs or unobservable inputs that are corroborated by market data.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Level
3: Unobservable inputs that are not corroborated by market data.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89D_eus-gaap--FairValueAssetsMeasuredOnRecurringBasisTextBlock_z1TUnPHxPCpf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes the assets measured at fair value on a recurring basis as of March 31, 2022, and December 31, 2021, by level
within the fair value hierarchy:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B3_zn0KXPJ85aM5" style="display: none">Schedule of Fair Value Assets and Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_492_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zGoKCJzpIDg1" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zzmeErf3pD07" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_490_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_zO0RfpKIVpef" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zKMZBJbGrbO4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">March 31, 2022</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; width: 36%; text-align: left">Contingent consideration - common stock</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0608">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0609">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">6,013,939</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">6,013,939</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0613">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0614">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,038,812</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,038,812</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0618">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0619">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zAmUwVrBVhw" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zYpB9BBZWTFb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49A_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_z4YHECf1mR8a" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_496_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zPwwxwJxes51" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Assets:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--MarketableSecurities_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; width: 36%; text-align: left">Marketable securities (certificates of deposit)</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0623">&#160;</span>-</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">1,255,266</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0625">-</span></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">1,255,266</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AssetsFairValueDisclosure_iI_pp0p0_zgIfNXbnLOh2" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total assets measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0628">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,255,266</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0630">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,255,266</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0_zgr84fZvOWrl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Contingent consideration - common stock</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0633">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0634">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">8,684,669</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">8,684,669</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0_z0x9aLWcjeha" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0638">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0639">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,747,972</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,747,972</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0_zO5KsAJZbvZd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0643">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0644">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">10,432,641</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">10,432,641</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A2_zdVDT85boOPb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s financial instruments that are measured at fair value on a recurring basis consist of certificates of deposit.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89F_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_zmbwcccQ4PC3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
changes for Level 3 items measured at fair value on a recurring basis are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 60pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_8B9_zyJTykKEdo26" style="display: none">Schedule of Changes in Fair Value Measurement</span>&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_49B_20220101__20220331_zg7E92CjoGm9" style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iS_pp0p0_zvJD5kRCGtD1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Fair value as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">10,432,641</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--ContingentConsideredIssuedForBusinessAcquisitions_i_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Change in fair value of contingent consideration issued for business acquisitions</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(3,379,890</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_406_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iE_zrChinXAcgF1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Fair value as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8AD_z5p9XuLxjwv4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<p id="xdx_890_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_zwZSxdEWWSng" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
fair value of the contingent consideration is based on the fair value of the contingent consideration-common stock and contingent consideration-warrants.
The fair value of the contingent consideration-common stock is equal to the probability-adjusted value of the Company&#8217;s common
stock as of March 31, 2022. The fair value of the contingent consideration-warrants is equal to the probability adjusted value of a call
option with terms consistent with the terms of the warrants as of March 31, 2022. Prior to the probability adjustments, the warrants
were valued based on the following inputs:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BD_zPgps9VUSTF9" style="display: none">Schedule of Contingent Consideration Common Stock and Warrants</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"><p style="font: 10pt/107% Times New Roman, Times, Serif; margin: 0"><b>March
                                            31, 2022</b></p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Stock price</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_za3eAJEpvUg4" style="width: 16%; text-align: right" title="Warrants measurement input">6.18</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_zz2npUQSdEdd" style="width: 16%; text-align: right">8.93</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Strike price</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zTHjStxkGZ7d" style="text-align: right" title="Warrants measurement input">9.13</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zeQyIHyXFiD7" style="text-align: right">9.13</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Volatility</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zCTHGvL6FAhl" style="text-align: right" title="Warrants measurement input">77.50</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zgzZ47AMeA9" style="text-align: right">80.00</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Risk-free rate</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zakllESA7O3k" style="text-align: right" title="Warrants measurement input">2.40</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zd39BWd7xZZi" style="text-align: right">1.30</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Expected term</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_905_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20220331_zvUDBAY5x1e6" title="Expected term">4.8</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_90A_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20211231_zxHQ9Ir6Xws1" title="Expected term">5.0</span></td><td style="text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8AB_zJouvqIAqTWh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306522232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue</a></td>
<td class="text"><p id="xdx_80B_eus-gaap--RevenueFromContractWithCustomerTextBlock_zpqPoGw7nbef" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
6 &#8211; <span id="xdx_82B_zcoVpJOpGVii">Revenue</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_891_eus-gaap--ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_zjzpB3Z6a1Vl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table sets forth revenue by geographic area:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B7_zOk31aA4QC46" style="display: none">Summary of Revenue by Geographic Area</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%; text-align: left">United States</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember_zO6KdVB6crp3" style="width: 16%; text-align: right" title="Revenue">14,218,398</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_987_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember_zH1raLFWw5ak" style="width: 16%; text-align: right" title="Revenue">12,493,950</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Rest of World</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zZCwleu1HUqf" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue">8,480,646</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zQMBfqldHG95" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue">7,530,819</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt">Total</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_981_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331_zNqA66xgGJe2" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue">22,699,044</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_986_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331_zzGdsVCWa1l4" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue">20,024,769</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Percentage of revenue by area:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">United States</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zJNqsVftaIP7" style="text-align: right" title="Percentage of revenue">63</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_z3vDjFJaFwp" style="text-align: right" title="Percentage of revenue">62</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Rest of World</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zvHtnH8YfXr4" style="text-align: right" title="Percentage of revenue">37</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zpCmkodyV2Dc" style="text-align: right" title="Percentage of revenue">38</td><td style="text-align: left">%</td></tr>
  </table>

<p id="xdx_8A0_zIfegbnW6Uyf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Deferred
Revenue</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89A_eus-gaap--ContractWithCustomerAssetAndLiabilityTableTextBlock_zRNSM86TC98g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Changes
in the Company&#8217;s deferred revenue balance for the three months ended March 31, 2022 were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BC_zb02F7FPfdY3" style="display: none">Schedule of Deferred Revenue</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_982_eus-gaap--ContractWithCustomerLiability_iS_c20220101__20220331_zOG7i8rV0ufb" style="width: 18%; text-align: right" title="Deferred revenue, beginning balance">150,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; padding-bottom: 1pt; text-align: left">Revenue recognized included in deferred revenue balance at the beginning of the period</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ContractWithCustomerLiabilityRevenueRecognized_iN_di_c20220101__20220331_zK22NJYy1kc5" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue recognized included in deferred revenue balance at the beginning of the period">(150,000</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98E_eus-gaap--ContractWithCustomerLiability_iE_c20220101__20220331_zAnWErWeVaAb" style="border-bottom: Black 2.5pt double; text-align: right" title="Deferred revenue, Ending balance"><span style="-sec-ix-hidden: xdx2ixbrl0704">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8AB_zVNoM1I0FPw6" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>&#160;</b></span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI https://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130551-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130556-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130550-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130558-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306578072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share</a></td>
<td class="text"><p id="xdx_80F_eus-gaap--EarningsPerShareTextBlock_zqzsARI95O1j" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
7 &#8211; <span id="xdx_82D_zMHulP5k08b2">Earnings Per Share</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_895_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zIjgl2JqHws8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table reconciles the numerator and the denominator used to calculate basic and diluted earnings per share for three months
ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_z6hrEutjv8gc" style="display: none">Schedule of Basic and Diluted Earnings Per Share</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zUpmCzAFxnG6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49C_20210101__20210331_zqoPs1NUpO15" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold">Numerator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--NetIncomeLoss_zMI7jvntCw3g" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; width: 60%; text-align: left">Net income, as reported</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right">11,714,595</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right">7,898,975</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold">Denominator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40D_ecustom--WeightedAverageNumberOfBasicSharesOutstanding_zCAt5rFLNPri" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Weighted average shares, basic</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">33,935,570</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">28,662,885</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--WeightedAverageNumberDilutedSharesOutstandingAdjustment_zlKviuHvxXe" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Dilutive effect of stock options, warrants and RSUs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">775,906</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,339,844</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_zeqgFoJIoihh" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Shares used to compute diluted earnings per share</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">34,711,476</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">30,002,729</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_ecustom--EarningsBasicPerShare_pid_zILOrADzfQfl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Basic earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.35</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.28</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--EarningsPerShareDiluted_pid_z5ENeZbAszth" style="vertical-align: bottom; background-color: White">
    <td>Diluted earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.34</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.26</td><td style="text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A9_zBU4s7DXTxFh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, potentially dilutive securities of <span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331_zaGQ8FbYzGAh" title="Securities excluded from computation of diluted earnings per share">1,271,304</span> were excluded from the calculation because their
effect would have been anti-dilutive. For the three months ended March 31, 2021, potentially dilutive securities of <span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20210101__20210331_zzuhUVLMdw6i" title="Securities excluded from computation of diluted earnings per share">2,320,907</span> were excluded
from the calculation because their effect would have been anti-dilutive. The computation of diluted earnings per share for the three
months ended March 31, 2022 also excludes the approximately <span id="xdx_902_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_pn5n6_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zeyzTTcNPUS9" title="Securities excluded from computation of diluted earnings per share">1.4</span> million shares of common stock and approximately <span id="xdx_906_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zWt0YFewv1vd" title="Securities excluded from computation of diluted earnings per share">456,000</span> warrants to
purchase shares of common stock that are contingent upon the achievement of certain milestones.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI https://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306508312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock', window );">Stock-Based Compensation</a></td>
<td class="text"><p id="xdx_803_eus-gaap--DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock_ztGLRUjhkhz1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
8 &#8211; <span id="xdx_823_zEOuy9NOjafe">Stock-Based Compensation</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Incentive Plans</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Co-Diagnostics, Inc. Amended and Restated 2015 Long Term Incentive Plan (the &#8220;Incentive Plan&#8221;) reserves an aggregate of <span id="xdx_90B_eus-gaap--CommonStockCapitalSharesReservedForFutureIssuance_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zpD8EaQDAGt2" title="Aggregate number of common shares reserved">6,000,000</span>
shares of common stock issuable upon the grant of awards under the Incentive Plan. The number of awards available for issuance under
the Incentive Plan was <span id="xdx_909_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zuIpJWFska7j" title="Number of common shares availalble for issuance">2,095,266</span> at March 31, 2022.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Options</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_891_eus-gaap--ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ztKgdy8Bqvh3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes option activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_zFj1t5YgHYJ7" style="display: none">Schedule of Option Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of Options</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iS_c20220101__20220331_zm8ni8HOyp94" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Options Outstanding, Beginning">1,111,363</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iS_pid_c20220101__20220331_zjFS2oGGdLC" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price Outstanding, Beginning">2.12</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331_zAqHrRACGyn1" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value Outstanding, Beginning">1.31</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_pid_dtY_c20220101__20220331_zjmfQduMY8Jh" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted-average Remaining Contractual Life (years) Outstanding, Beginning">6.62</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_c20220101__20220331_zFZq5mwhakx6" style="text-align: right" title="Number of Options Outstanding, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0752">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zLJwzTPT313j" style="text-align: right" title="Weighted Average Exercise Price Granted"><span style="-sec-ix-hidden: xdx2ixbrl0754">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zMNO7zKKMxqh" style="text-align: right" title="Weighted Average Fair Value Granted"><span style="-sec-ix-hidden: xdx2ixbrl0756">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20220101__20220331_z2lnJiwKu0kd" style="text-align: right" title="Number of Options Outstanding, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0758">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zpscqZ4oqLGf" style="text-align: right" title="Weighted Average Exercise Price Expired"><span style="-sec-ix-hidden: xdx2ixbrl0760">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_c20220101__20220331_ziJTEheYQg9i" style="text-align: right" title="Weighted Average Fair Value Expired"><span style="-sec-ix-hidden: xdx2ixbrl0762">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_c20220101__20220331_zm9zTDNfUqg1" style="text-align: right" title="Number of Options Outstanding, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0764">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zI60XZcOrfIg" style="text-align: right" title="Weighted Average Exercise Price Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0766">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_zTusk0Q1HwEi" style="text-align: right" title="Weighted Average Fair Value Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0768">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_ecustom--StockIssuedDuringPeriodSharesStockOptionsExercised1_iN_di_c20220101__20220331_zmfWwUWz21fk" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options Outstanding, Exercised">(45,456</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_pid_c20220101__20220331_zH4PiywzNzl7" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price Exercised">1.10</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98B_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_iE_pid_c20220101__20220331_zctHiNPIvZE" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value Exercised">0.51</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iE_c20220101__20220331_z1G0zrKY3xE6" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Outstanding, Ending">1,065,907</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zWUT54m7tuGe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price Outstanding, Ending">2.17</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_98A_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331_z1CaCrgSNUX5" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value Outstanding, Ending">1.35</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_905_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_dtY_c20220101__20220331_zHaUED7Uv6C1" title="Weighted-average Remaining Contractual Life (years) Outstanding, Ending">6.65</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Exercisable at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_iE_c20220101__20220331_ziLdpTMQn0j3" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Exercisable Ending">1,049,241</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zwUa7Rgtndfk" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Exercisable Ending">2.05</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_984_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_iE_pid_c20220101__20220331_z1WB4Z83K5md" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Exercisable Ending">1.21</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90D_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zNnzpFa7cASa" title="Weighted-average Remaining Contractual Life (years), Exercisable Ending">6.63</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A3_zRuBH60lvY9g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
total intrinsic value of options exercised during the three months ended March 31, 2022 was approximately $<span id="xdx_90E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zZoD4nPdZNT" title="Intrinsic value of options value exercised">0.3</span> million. The aggregate
intrinsic value of outstanding options at March 31, 2022 was approximately $<span id="xdx_907_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zV1WjMkJrShi" title="Aggregate intrinsic value of outstanding options">4.5</span> million.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Stock-based
compensation cost is measured at the grant date based on the fair value of the award granted and recognized as expense over the vesting
period using the straight-line method. The Company uses the Black-Scholes model to value options granted.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, there were <span id="xdx_903_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_iI_pid_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_z2p1NoWfTHW1" title="Unvested options">16,666</span> of unvested options and $<span id="xdx_904_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pip0_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zcU9HUokbRth" title="Unrecognized stock-based compensation">37,241</span> of unrecognized stock-based compensation expense. The unrecognized
stock-based compensation expense is expected to be recognized over <span id="xdx_901_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zUlhK2OM32Il" title="Unrecognized stock-based compensation recognition period">0.2</span> years.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Restricted
Stock Units</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_892_eus-gaap--ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_zkR6cdqpf4h" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
grant date fair value of RSUs granted is determined using the closing market price of the Company&#8217;s common stock on the grant date
with the associated compensation expense amortized over the vesting period of the awards. The following table sets forth the outstanding
RSUs and related activity for the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B1_zCzRWJbV2WC1" style="display: none">Schedule of Outstanding Restricted Stock Units and Related Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of RSUs</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Grant Date Fair Value</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; width: 60%">Unvested at December 31, 2021</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iS_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zj0haNKa41L6" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Number of Restricted Stock Units, Outstanding Beginning">1,267,415</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zPDQwjPVPZQ7" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Beginning">9.94</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zBvpfwns7NXf" style="text-align: right" title="Number of Restricted Stock Units, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0808">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zbfceDCgQzG1" style="text-align: right" title="Weighted Average Grant Date Fair Value, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0810">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Vested</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsr2FAUFsY15" style="text-align: right" title="Number of Restricted Stock Units, Vested">(68,750</td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zdoJlsjmka6f" style="text-align: right" title="Weighted Average Grant Date Fair Value, Vested">10.23</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt">Forfeited/Cancelled</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zd2CW2RnTX41" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Restricted Stock Units, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0816">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zRdW35RSmsJ5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Grant Date Fair Value, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0818">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Unvested at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iE_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zF15KGf5pLSi" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Restricted Stock Units, Outstanding Ending">1,198,665</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_z4ziqRB3cBJe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Ending">9.92</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A8_za2eDRK6cH34" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, there was approximately $<span id="xdx_902_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zgZJ8XzuxWVg" title="Unrecognized stock-based compensation">10.3</span> million of unrecognized stock-based compensation expense related to outstanding RSUs
which is expected to be recognized over a weighted-average period of <span id="xdx_90C_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zE8TYnrDazh1" title="Unrecognized stock-based compensation recognition period">2.1</span> years.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Warrants</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has issued warrants related to financings, acquisitions and as compensation to third parties for services provided. The Company
estimates the fair value of issued warrants on the date of issuance as determined using a Black-Scholes pricing model. The Company amortizes
the fair value of issued warrants using a vesting schedule based on the terms and conditions of each warrant if granted for services.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_899_eus-gaap--ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_z1wJP62NylF4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes warrant activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BA_zmWowKLiH7td" style="display: none">Schedule of Warrant Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Number of Warrants</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iS_c20220101__20220331_zINttDYfthV3" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Warrants Outstanding, Beginning">526,281</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_iS_c20220101__20220331_zaEjjCFGB8If" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price, Beginning">8.15</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iS_c20220101__20220331_zAMBLeDQI2xc" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value, Beginning">4.01</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 12%; text-align: right"><span id="xdx_901_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zXxfhiYJ8YQj" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning">4.7</span></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_c20220101__20220331_zFTwFSliwhhb" style="text-align: right" title="Number of Warrants Outstanding, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0838">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zOtZnFemB6X9" style="text-align: right" title="Weighted Average Exercise Price, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0840">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_z8woLIlZ5ZZb" style="text-align: right" title="Weighted Average Fair Value, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0842">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_iN_di_c20220101__20220331_zwxKLvtGG0Z4" style="text-align: right" title="Number of Warrants Outstanding, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0844">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_z5XhppworVa7" style="text-align: right" title="Weighted Average Exercise Price, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0846">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_c20220101__20220331_zI1ZFD4Jam0g" style="text-align: right" title="Weighted Average Fair Value, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0848">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_c20220101__20220331_z0igDcUrLtCg" style="text-align: right" title="Number of Warrants Outstanding, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0850">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zSDpvx9C9ii6" style="text-align: right" title="Weighted Average Exercise Price, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0852">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_znqvowCE0we1" style="text-align: right" title="Weighted Average Fair Value, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0854">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_iN_di_c20220101__20220331_zUDzI34kvrZi" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Warrants Outstanding, Exercised">(50,000</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_c20220101__20220331_zi3iWflCO9Kc" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price, Exercised">2.00</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zCkH6fj1orj5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value, Exercised">1.22</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iE_c20220101__20220331_zUIDeoF7zjq5" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Warrants Outstanding, Ending">476,281</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_989_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_iE_c20220101__20220331_zi0ar9QRWgNe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Ending">8.80</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iE_c20220101__20220331_zKatffPbVt73" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Ending">2.82</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90F_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_dtY_c20220101__20220331_zujqIlxFtNni" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Ending">4.8</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>


<p id="xdx_8AD_zVsjyVbN7idg" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
intrinsic value of warrants exercised during the three months ended March 31, 2022 and 2021 was approximately $<span id="xdx_905_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zAkC7w0Nbmvi" title="Intrinsic value of warrants exercised">0.3</span> million and $<span id="xdx_908_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20210101__20210331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zkeBUQsXknG" title="Intrinsic value of warrants exercised">0</span>, respectively.
The aggregate intrinsic value of outstanding warrants at March 31, 2022 was approximately $<span id="xdx_908_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zKHKKGZnifxl" title="Aggregate intrinsic value of options outstanding">0.1</span> million.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
total number of warrants exercisable at March 31, 2022 are <span id="xdx_90B_ecustom--ClassOfWarrantExercisable_iI_c20220331_zQ0Gkr3LALMh" title="Warrants exercisable">20,000</span>. The ability to exercise the approximately <span id="xdx_90D_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20220331_zFgoIyvT3tO8" title="Warrants to purchase a common stock">456,000</span> warrants issued
in connection with acquisitions in the prior year is contingent upon the achievement of certain development and revenue milestones on
or before January 1, 2027. There was no unrecognized stock-based compensation expense related to warrants.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock
Issued for Services</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has issued restricted stock to third parties for services provided. The grant date fair value of the restricted stock granted
is determined using the closing market price of the Company&#8217;s common stock on the grant date with the associated compensation expense
amortized over the vesting period of the stock awards. The Company issued <span id="xdx_907_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20220101__20220331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zj2SYp8VDwg2" title="Number of shares issued for services">0</span> and <span id="xdx_901_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20210101__20210331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zi6LabDAx2Uh" title="Number of shares issued for services">4,290</span> shares of restricted stock for services during
the three months ended March 31, 2022 and 2021, respectively. There was no unrecognized stock-based compensation expense related to restricted
stock issued.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock-Based
Compensation Expense</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89D_eus-gaap--ScheduleOfShareBasedCompensationActivityTableTextBlock_zPYBrbJSqFV2" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company recognized stock-based compensation expense related to the types of awards discussed above as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z76fbZFhXxG8" style="display: none">Schedule of Recognized Stock-based Compensation Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zSzyjgXgojKj" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_498_20210101__20210331_zLEHlnmmSMdb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--EmployeeStockOptionMember_ze6yUBk9hx1k" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Options</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right">40,874</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right">76,672</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsQ7WzlCG6c3" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Restricted stock units</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">1,334,223</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">1,396,440</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--StockCompensationPlanMember_zm2AWY00LFua" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Stock</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0892">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">39,900</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AllocatedShareBasedCompensationExpense_zeoC4gLwIlK9" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt; text-align: left">Total stock-based compensation expense</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,375,097</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,513,012</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8AB_zmSgsxVv7dqd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306426200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text"><p id="xdx_80E_eus-gaap--IncomeTaxDisclosureTextBlock_zppyCcVYXcO" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
9 &#8211; <span id="xdx_823_zf2PBTQeSRoj">Income Taxes</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, the Company recognized expense from income taxes of $<span id="xdx_908_eus-gaap--IncomeTaxExpenseBenefit_c20220101__20220331_z1tCSpWLmFo7" title="Income tax expense benefit">1,386,087</span>, representing an effective tax
rate of <span id="xdx_900_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_pid_dp_uPure_c20220101__20220331_zPyFA3rZrKqc" title="Effective tax rate">10.6</span>%. The Company&#8217;s effective tax rate will generally differ from the U.S. Federal statutory rate of <span id="xdx_90D_eus-gaap--EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_pid_dp_uPure_c20220101__20220331_zWmLJWvwz8Qe" title="Effective federal statutory  tax rate">21.0</span>% due to state
taxes, permanent items, and discrete items. For the three months ended March 31, 2021, the Company recognized expense from income taxes
of $<span id="xdx_90F_eus-gaap--IncomeTaxExpenseBenefit_c20210101__20210331_zHYWtUxgSXP3" title="Income tax expense benefit">1,985,640</span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI https://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306444680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Transactions<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsAbstract', window );"><strong>Related Party Transactions [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsDisclosureTextBlock', window );">Related Party Transactions</a></td>
<td class="text"><p id="xdx_805_eus-gaap--RelatedPartyTransactionsDisclosureTextBlock_zy9OByMN4GHl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
10 &#8211; <span id="xdx_823_z8hNhd2P3LZ5">Related Party Transactions</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company acquired the exclusive rights to the CoPrimer technology pursuant to an exclusive license agreement, dated April 2014 (the &#8220;Exclusive
License Agreement&#8221;), between the Company and DNA Logix, Inc., which was assigned to Dr. Brent Satterfield, a former executive officer,
prior to the Company&#8217;s acquisition of DNA Logix, Inc. On March 1, 2017, the Company entered into an amendment to its Exclusive
License Agreement for its Cooperative Primers (&#8220;License&#8221;) technology with Dr. Satterfield. The amendment provides in part
that all accrued royalties under the License cease as of January 1, 2017, and the Company began in January 2017 to pay to Dr. Satterfield
$<span id="xdx_90F_eus-gaap--AccruedRoyaltiesCurrent_iI_pp0p0_c20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z0VdzYJIufjj" title="Accrued royalties">700,000</span> of accrued royalties at the rate of $<span id="xdx_905_eus-gaap--PaymentsForRoyalties_c20170101__20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_pp0p0" title="Payment for royalties per month">10,000</span> per month. At March 31, 2022 and 2021, the aggregate balance of this related party
liability was $<span id="xdx_90E_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20220331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_zgoU24xJvbxj" title="Due to related party">0</span> and $<span id="xdx_908_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20210331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z7iPe3fPq6f" title="Due to related party">120,000</span>, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -URI https://asc.fasb.org/topic&amp;trid=2122745<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39691-107864<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306401880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text"><p id="xdx_80C_eus-gaap--LesseeOperatingLeasesTextBlock_zPEbg8C0gI9k" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
11 &#8211; <span id="xdx_826_zSmjfgkGNaak">Leases</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company leases office space under a non-cancelable operating lease and leases cancellable with one month notice. The Company expenses
the cancellable leases in the period incurred in accordance with the practical expedient elected. As such, one lease makes up the entirety
of the right-of-use asset and lease liability disclosed.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89B_eus-gaap--LeaseCostTableTextBlock_zhGVF0ucspb4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, components of lease expense are summarized as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B4_zouiYmOacxib" style="display: none">Schedule
of Lease Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_495_20220101__20220331_z6tVJLHMb66l" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--OperatingLeaseCost_maLCz2lp_zH9otZYmiV92" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 72%; text-align: left">Operating lease costs</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 24%; text-align: right">86,588</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--ShortTermLeaseCost_maLCz2lp_z0BHr5iP7Dwf" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Short-term lease costs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">76,080</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--LeaseCost_iT_mtLCz2lp_zrKTVxoTGlc7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease costs</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">162,668</td><td style="text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A8_z4RdnrnG9Vse" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Short-term
lease costs under month-to-month lease agreements are paid to related parties.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_896_ecustom--ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_zVVzrDGvgdsf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, the maturities of the Company&#8217;s lease liabilities are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_zUJ5ZslRfQX1" style="display: none">Schedule
of Maturities on Company Lease Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331_zBhZuJRG2BR2" style="border-bottom: Black 1pt solid; font-weight: bold"><p style="text-align: center; margin-top: 0; margin-bottom: 0">Year Ending</p>
                                              <p style="text-align: center; margin-top: 0; margin-bottom: 0">December 31,</p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_iI_maLOLLPz8za_zhHwGPyV3gdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%">2022 (remainder)</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">221,350</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_iI_maLOLLPz8za_zLFPq8utmS88" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">303,059</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_iI_maLOLLPz8za_zDoXm5VHYgdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2024</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">50,774</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearThree_iI_maLOLLPz8za_z15HGB0gFQv5" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2025</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0936">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearFour_iI_maLOLLPz8za_zBWq2EvaX9C9" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2026</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0938">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_ecustom--LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_iI_maLOLLPz8za_zhoLnWbBfXpa" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Thereafter</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0940">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDue_iTI_mtLOLLPz8za_zEuyMBoF1m2g" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease payments</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">575,183</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_iI_zBlcdvQfROwh" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: imputed interest</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">16,212</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiability_iI_zzYB8uOuq2r3" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Present value of operating lease liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">558,971</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--OperatingLeaseLiabilityCurrent_iI_zCddX53lu3fi" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: current portion</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">283,299</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiabilityNoncurrent_iI_zVaNJB2rcYo4" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Long-term portion</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">275,672</td><td style="text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8A2_zeNKcpFpfg2i" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_89C_ecustom--ScheduleOfOperatingLeaseTableTextBlock_z2pxsh2kbXMk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Other
information related to operating leases was as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B0_zcoHjjw4IjUj" style="display: none">Schedule
of Other Information Related to Operating Lease</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20220101__20220331_zsSIqJQrcOkd" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--OperatingLeasePayments_zpgMXeWO2Xme" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%; text-align: left">Cash paid for operating leases included in operating cash flows</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">154,882</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Remaining lease term of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_900_eus-gaap--OperatingLeaseWeightedAverageRemainingLeaseTerm1_iI_dtY_c20220331_zuSeRQcIqvPb" title="Remaining lease term of operating leases">2</span>
years</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Discount rate of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--OperatingLeaseWeightedAverageDiscountRatePercent_iI_pid_dp_uPure_c20220331_zON7zcW1s8cl" style="text-align: right" title="Discount rate of operating leases">3.1</td><td style="text-align: left">%</td></tr>
  </table>

<p id="xdx_8AC_zeUrWUVup369" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p id="xdx_896_eus-gaap--LesseeOperatingLeaseLiabilityMaturityTableTextBlock_zFGBOl3587Fi" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
previously disclosed in our Annual Report on Form 10-K for the year ended December 31, 2021, future lease payments under ASC 840 for
operating leases were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z4qq0XhUJzac" style="display: none">Schedule of Future Minimum Lease Payments</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-weight: bold">Year Ending December 31,</td><td style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49E_20220331_zCSh6K2O3S73" style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_iI_maOLFMPz5Lk_z2Nsfjwe9kN" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%; text-align: left">2022</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">293,595</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueCurrent_iI_maOLFMPz5Lk_zzEsZPvLCn8a" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">303,059</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueInTwoYears_iI_maOLFMPz5Lk_zVhhO38N9Mid" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">2024</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">50,774</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDue_iTI_mtOLFMPz5Lk_zus8e4KpaRV4" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total lease payments</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">647,428</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p id="xdx_8AD_zi80tmDcFWj8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI https://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306869944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text"><p id="xdx_804_eus-gaap--CommitmentsAndContingenciesDisclosureTextBlock_zhotIR4Z9cd4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
12 &#8211;<span id="xdx_82A_z1MdzimMC083"> Commitments and Contingencies</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Litigation</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Liabilities
for loss contingencies arising from claims, assessments, litigation, fines, and penalties and other sources are recorded when it is probable
that a liability has been incurred and the amount can be reasonably estimated. Legal costs incurred in connection with loss contingencies
are expensed as incurred.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company is currently a defendant in five different securities class action complaints that were filed by certain stockholders of the
Company claiming that the Company promulgated false and misleading press releases to increase the price of our stock to improperly benefit
the officers and directors of the Company. The plaintiffs demand compensatory damages sustained as a result of the Company&#8217;s alleged
wrongdoing in an amount to be proven at trial. The Company believes these lawsuits are without merit and intends to defend the cases
vigorously. The Company is unable to estimate a range of loss, if any, that could result were there to be an adverse final decision in
these cases. As of the date of this report, the Company does not believe it is probable that these cases will result in an unfavorable
outcome; however, if an unfavorable outcome were to occur in these cases, it is possible that the impact could be material to the Company&#8217;s
results of operations in the period(s) in which any such outcome becomes probable and estimable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI https://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 440<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI https://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306474136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Repurchase Program<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfStockholdersEquityTableTextBlock', window );">Share Repurchase Program</a></td>
<td class="text"><p id="xdx_807_eus-gaap--ScheduleOfStockholdersEquityTableTextBlock_zkgBojtQKENl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
13 &#8211; <span id="xdx_827_zp7H4K9bbtt9">Share Repurchase Program</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><span>&#160;</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
March 2022, the Company&#8217;s Board of Directors authorized a share repurchase program that would allow the Company to repurchase up
to $<span id="xdx_900_eus-gaap--StockRepurchaseProgramAuthorizedAmount1_iI_pn5n6_c20220331_z6xGkHaVHpM7" title="Stock repurchase program authorized amount">30.0</span> million of CODX common stock. The repurchase program does not obligate the Company to acquire any particular amount of common
shares, and the repurchase program may be suspended or discontinued at any time at the Company&#8217;s discretion. The timing and amount
of any share repurchases under the share repurchase program will be determined by Co-Diagnostics&#8217; management at its discretion
based on ongoing assessments of the capital needs of the business, the market price of the Company&#8217;s common stock, corporate and
regulatory requirements, and general market conditions.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has not made any repurchases under the share purchase program since its implementation.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfStockholdersEquityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of changes in the separate accounts comprising stockholders' equity (in addition to retained earnings) and of the changes in the number of shares of equity securities during at least the most recent annual fiscal period and any subsequent interim period presented is required to make the financial statements sufficiently informative if both financial position and results of operations are presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfStockholdersEquityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306525848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>Subsequent Events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text"><p id="xdx_80A_eus-gaap--SubsequentEventsTextBlock_zZ26vTghGtkh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b>Note
14 &#8211; <span id="xdx_82D_zKe8NmtZ1Yuj">Subsequent Events</span></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company evaluated subsequent events pursuant to ASC Topic 855 and has determined that there are no events that need to be reported.</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI https://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021301765176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents</a></td>
<td class="text"><p id="xdx_843_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zgP1fzlAOOTe" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Cash
and Cash Equivalents</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Cash
and cash equivalents consist of cash on hand, money market funds and highly liquid investments with an original maturity date of 90 days
or less from the date of purchase. The fair value of cash equivalents approximated their carrying value as of March 31, 2022 and December
31, 2021. The Company has its cash and cash equivalents with a large creditworthy financial institution and the balance exceeded federally
insured limits. The Company has not experienced any losses in such accounts, and management believes the Company is not exposed to any
significant credit risk on cash and cash equivalents.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecuritiesPolicy', window );">Marketable Investment Securities</a></td>
<td class="text"><p id="xdx_845_eus-gaap--MarketableSecuritiesPolicy_zB1GZqFRT1wb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Marketable
Investment Securities</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company&#8217;s marketable investment securities are comprised of investments in certificates of deposit. The Company determines the
appropriate classification of its marketable investment securities at the time of purchase and reevaluates such designation at each balance
sheet date. The Company has classified and accounted for its marketable investment securities as available-for-sale securities as the
Company may sell these securities at any time for use in its current operations or for other purposes, even prior to maturity. As a result,
the Company classifies its marketable investment securities, including securities with stated maturities beyond twelve months, within
current assets in the consolidated balance sheets. Any unrealized gains or losses are immaterial.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Accounts Receivable</a></td>
<td class="text"><p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zyTPsu5XMaJ8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Accounts
Receivable</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Trade
accounts receivable are recorded at the invoiced amount (net of allowance) and do not bear interest. The Company maintains an allowance
for doubtful accounts for amounts the Company does not expect to collect. In establishing the required allowance, management considers
historical losses, current market condition, customers&#8217; financial condition, the age of receivables, and current payment patterns.
Account balances are written off against the allowance once the receivable is deemed uncollectible. Recoveries of trade receivables previously
written off are recorded when collected. At March 31, 2022, total accounts receivable was $<span id="xdx_905_eus-gaap--AccountsReceivableGrossCurrent_iI_c20220331_zxP07cEI8Oki" title="Accounts receivable">22,379,861</span> with an allowance for uncollectable
accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20220331_zC5TNQyfd03a" title="Doubtful accounts">717,458</span> resulting in a net amount of $<span id="xdx_902_eus-gaap--AccountsReceivableNetCurrent_iI_c20220331_zPrkPnLS3Pv5" title="Accounts receivable, net">21,662,403</span>. At December 31, 2021, total accounts receivable was $<span id="xdx_909_eus-gaap--AccountsReceivableGrossCurrent_iI_c20211231_zaPHySI4oaB1">21,508,779</span> with an
allowance for uncollectable accounts of $<span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20211231_zxShRG1Rqs5e">669,597</span> resulting in a net amount of $<span id="xdx_906_eus-gaap--AccountsReceivableNetCurrent_iI_c20211231_zHw3ELPKGTrc">20,839,182</span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityMethodInvestmentsPolicy', window );">Equity-Method Investments</a></td>
<td class="text"><p id="xdx_844_eus-gaap--EquityMethodInvestmentsPolicy_z5B1vrwVJLQ1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Equity-Method
Investments</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Our
equity method investments are initially recorded at cost and are included in other long-term assets in the accompanying consolidated
balance sheet. We adjust the carrying value of our investment based on our share of the earnings or losses in the periods which they
are reported by the investee until the carrying amount is zero. The earnings or losses are included in other income (expense) in the
accompanying consolidated statements of operations.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory</a></td>
<td class="text"><p id="xdx_843_eus-gaap--InventoryPolicyTextBlock_zIoOuJSf0Oxb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Inventory</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Inventory
is stated at the lower of cost or net-realizable value. Inventory cost is determined on a first-in first-out basis that approximates
average cost in accordance with ASC 330-10-30-12. At March 31, 2022, the Company had $<span id="xdx_904_eus-gaap--InventoryNet_iI_c20220331_zWeIZTfEDPwc" title="Inventory">4,901,057</span> in inventory, of which $<span id="xdx_904_eus-gaap--InventoryFinishedGoods_iI_c20220331_zrIBb3uaUXMb" title="Inventory finished goods">4,119,549</span> was
finished goods and $<span id="xdx_909_eus-gaap--InventoryRawMaterials_iI_c20220331_zQYNiHkaRDw6" title="Inventory raw materials">781,508</span> was raw materials. At December 31, 2021, the Company had $<span id="xdx_900_eus-gaap--InventoryNet_iI_c20211231_z55GydraidKi">2,004,169</span> in inventory, of which $<span id="xdx_90A_eus-gaap--InventoryFinishedGoods_iI_c20211231_z3p9z2hYbej">983,088</span> was finished
goods and $<span id="xdx_903_eus-gaap--InventoryRawMaterials_iI_c20211231_zwVFypuKCfp4">1,021,081</span> was raw materials. The Company establishes reserves to reduce slow-moving, obsolete, or unusable inventories to
their estimated useful or scrap values.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p id="xdx_845_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zfvh6Drr6V6g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Property
and Equipment</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Property
and equipment are stated at cost less accumulated depreciation and amortization. Depreciation is provided using the straight-line method
over the estimated useful lives of the property, generally from <span id="xdx_90B_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dxL_c20220101__20220331__srt--RangeAxis__srt--MinimumMember_z9D5FsdDpQ15" title="::XDX::P3Y"><span style="-sec-ix-hidden: xdx2ixbrl0496">three</span></span> to <span id="xdx_90E_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dc_c20220101__20220331__srt--RangeAxis__srt--MaximumMember_zK8pvEATGOl7" title="Estimated useful life of property">five years</span>. Repairs and maintenance costs are expensed as incurred
except when such repairs significantly add to the useful life or productive capacity of the asset, in which case the repairs are capitalized.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company reviews its long-lived assets, including property and equipment, for impairment whenever an event or change in facts and circumstances
indicates that their carrying amounts may not be recoverable. Recoverability of these assets is measured by comparing the carrying amount
to the estimated undiscounted future cash flows expected to be generated. If the carrying amount exceeds the undiscounted cash flows,
the assets are determined to be impaired and an impairment charge is recognized as the amount by which the carrying amount exceeds fair
value.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Combinations</a></td>
<td class="text"><p id="xdx_840_eus-gaap--BusinessCombinationsPolicy_z7LzhubAB0Sf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Business
Combinations</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">We
estimate the fair value of assets acquired and liabilities assumed in a business combination. Goodwill as of the acquisition date is
measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities
assumed. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets.
Management&#8217;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and
unpredictable, and as a result, actual results may differ from estimates.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p id="xdx_845_eus-gaap--LesseeLeasesPolicyTextBlock_zC983qpkCyib" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Leases</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
described in &#8220;Recently Adopted Accounting Standards&#8221; below, the Company adopted ASC 842, Leases (&#8220;ASC 842&#8221;) effective
January 1, 2022. Under ASC 842, the Company determines if an arrangement is or contains a lease at inception by assessing whether the
arrangement contains an identified asset and whether it has the right to control the identified asset. Right-of-use (ROU) assets represent
the Company&#8217;s right to use an underlying asset for the lease term and lease liabilities represent the Company&#8217;s obligation
to make lease payments arising from the lease. Lease liabilities are recognized at the lease commencement date based on the present value
of future lease payments over the lease term. ROU assets are based on the measurement of the lease liability and also include any lease
payments made prior to or on lease commencement and exclude lease incentives and initial direct costs incurred, as applicable.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
the implicit rate in the Company&#8217;s leases is generally unknown, the Company uses its incremental borrowing rate based on the information
available at the lease commencement date in determining the present value of future lease payments. The Company considers its credit
risk, term of the lease, total lease payments and adjusts for the impacts of collateral, as necessary, when calculating its incremental
borrowing rates. The Company evaluates renewal options at lease inception and on an ongoing basis and includes renewal options that it
is reasonably certain to exercise in its expected lease terms when classifying leases and measuring lease liabilities. Lease costs for
the Company&#8217;s operating leases are recognized on a straight-line basis within operating expenses and cost of revenue over the reasonably
assured lease term.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has elected to not separate lease and non-lease components for leases of office space and, as a result, accounts for any lease
and non-lease components for office space as a single lease component, to the extent they are fixed. Non-lease components that are not
fixed are expensed as incurred as variable lease payments. The Company&#8217;s office leases typically include non-lease components such
as common-area maintenance costs. The Company has also elected to not apply the recognition requirement to any leases within its existing
classes of assets with a term of 12 months or less.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zAtkVYfTVgP3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Revenue
Recognition</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company generates revenue from product sales and license sales. The Company recognizes revenue when all of the following criteria are
satisfied: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or
services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction
price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations; and
(v) recognition of revenue when, or as the Company satisfies each performance obligation.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company constrains revenue by giving consideration to factors that could otherwise lead to a probable reversal of revenue. The Company
records any payments received from customers prior to the Company fulfilling its performance obligation(s) as deferred revenue.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Deferred Revenue</a></td>
<td class="text"><p id="xdx_84D_eus-gaap--RevenueFromContractWithCustomerPolicyTextBlock_zcppXrJSBXXd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Deferred
Revenue</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Deferred
revenue primarily consists of payments received from customers prior to the Company fulfilling its performance obligation of providing
the product. When this occurs, the Company records a contract liability as deferred revenue. Deferred revenue is recognized as revenue
as the related performance obligations are satisfied.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development</a></td>
<td class="text"><p id="xdx_841_eus-gaap--ResearchAndDevelopmentExpensePolicy_zzsm7sYzTWsa" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Research
and Development</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Research
and development costs are expensed when incurred. For the three months ended March 31, 2022, the Company expensed $<span id="xdx_905_eus-gaap--ResearchAndDevelopmentExpense_c20220101__20220331_zoT4Gpan3zig" title="Research and development">3,771,327</span> of research
and development costs, respectively. For the three months ended March 31, 2021, the Company expensed $<span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20210101__20210331_zxyNCpkq2ayl">2,217,063</span>.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-based Compensation</a></td>
<td class="text"><p id="xdx_847_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zLD9KSnNIb4d" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Stock-based
Compensation</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company has granted stock-based awards, including restricted stock, stock options, stock warrants and restricted stock units (&#8220;RSUs&#8221;),
to its employees, certain consultants and members of its board of directors. The Company records stock-based compensation based on the
grant date fair value of the awards and recognizes the fair value of those awards as expense using the straight-line method over the
requisite service period of the award. The Company estimates the grant date fair value of stock options using the Black-Scholes option-pricing
model. When an award is forfeited prior to the vesting date, the Company recognizes an adjustment for the previously recognized expense
in the period of the forfeiture.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><p id="xdx_84D_eus-gaap--IncomeTaxPolicyTextBlock_zEKwmtpEkMmk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Income
Taxes</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company accounts for income taxes in accordance with the liability method of accounting for income taxes. Under this method, deferred
income tax assets and deferred income tax liabilities represent the tax effect of temporary differences between financial reporting and
tax reporting measured at enacted tax rates in effect for the year in which the differences are expected to reverse. The Company recognizes
only the impact of tax positions that, based on their technical merits, are more likely than not to be sustained upon an audit by the
taxing authority.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Valuation
allowances are provided when it is more-likely-than-not that some or all of the deferred income tax assets may not be realized. In assessing
the need for a valuation allowance, the Company has considered its historical levels of income, expectations of future taxable income
and ongoing tax planning strategies.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Developing
the provision for income taxes, including the effective tax rate and analysis of potential tax exposure items, if any, requires significant
judgment and expertise in federal and state income tax laws, regulations and strategies, including the determination of deferred income
tax assets and liabilities and any estimated valuation allowances deemed necessary to value deferred income tax assets. Judgments and
tax strategies are subject to audit by various taxing authorities. While the Company believes it has no significant uncertain income
tax positions in the consolidated financial statements, adverse determinations by these taxing authorities could have a material adverse
effect on the consolidated financial positions, result of operations, or cash flows.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net Income per Share</a></td>
<td class="text"><p id="xdx_847_eus-gaap--EarningsPerSharePolicyTextBlock_ziD63g3a2Ksk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Net
Income per Share</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Basic
net income or loss per common share is computed by dividing net income or loss applicable to common shareholders by the weighted average
number of shares outstanding during each period.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Diluted
net income or loss per share is computed by dividing net income or loss attributable to common stockholders by the weighted-average number
of shares of common stock outstanding during the period increased by common shares that could be issued upon conversion or exercise of
other outstanding securities to the extent those additional common shares would be dilutive. The dilutive effect of potentially dilutive
securities is reflected in diluted net income or loss per share by application of the treasury stock method. During periods when the
Company is in a net loss position, basic net loss per share is the same as diluted net loss per share as the effects of potentially dilutive
securities are anti-dilutive.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations Risk and Significant Customers</a></td>
<td class="text"><p id="xdx_849_eus-gaap--ConcentrationRiskCreditRisk_zWYCWNbSntV8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Concentrations
Risk and Significant Customers</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company had certain customers which are each responsible for generating 10% or more of the total revenue for the three months ended March
31, 2022. Three customers together accounted for approximately <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zGhPwyoulaY5" title="Concentration risk percentage">54</span>% and <span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zaj1LJyqynBe" title="Concentration risk percentage">57</span>% of total revenue for the three months ended March 31, 2022
and March 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Two
customers each accounted for more than 10% of accounts receivable at March 31, 2022 and December 31, 2021. These two customers together
accounted for approximately <span id="xdx_906_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_z71rrH0xurDh" title="Concentration risk percentage">62</span>% and <span id="xdx_905_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20211231__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_ziYiggZXUXhi" title="Concentration risk percentage">66</span>% of accounts receivable at March 31, 2022 and December 31, 2021, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>




<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements</a></td>
<td class="text"><p id="xdx_842_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zyT1QLCRuJac" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recent
Accounting Pronouncements</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">From
time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (&#8220;FASB&#8221;) that are adopted
by the Company as of the specified effective date. If not discussed, management believes that the impact of recently issued standards,
which are not yet effective, will not have a material impact on the Company&#8217;s financial statements upon adoption.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock', window );">Recently Adopted Accounting Standards</a></td>
<td class="text"><p id="xdx_847_ecustom--RecentlyAdoptedAccountingStandardsPolicyTextBlock_zE3ij2MeBTIj" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>Recently
Adopted Accounting Standards</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><b><i>&#160;</i></b></span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
June 2016, the FASB issued ASU No. 2016-13, Financial Instruments-Credit Losses (Topic 326) (&#8220;ASU 2016-13&#8221;), which requires
the measurement and recognition of expected credit losses for certain financial instruments, which includes the Company&#8217;s accounts
receivable. ASU 2016-13 replaces the existing incurred loss impairment model with an expected loss methodology, which will result in
more timely recognition of credit losses. The Company adopted ASU 2016-13 on January 1, 2022. The adoption did not have an impact on
the Company&#8217;s financial statements.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">In
February 2016, the FASB issued ASU No. 2016-02, Leases (Topic 842) (&#8220;ASU 2016-02&#8221;), which requires a lessee to recognize
most leases on the balance sheet as lease liabilities with corresponding right-of-use assets. The objective of ASU 2016-02 is to increase
transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and disclosing
key information about leasing arrangements. The recognized lease liabilities and lease assets represent the obligation to make payments
and the right to use or control the use of a specified asset for the lease term, respectively.</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">On
January 1, 2022, the Company adopted Topic 842 using the modified retrospective approach with the effective date as the date of initial
application. Consequently, results for the three months ended March 31, 2022 are presented under Topic 842. No prior period amounts were
adjusted and continue to be reported in accordance with previous lease guidance, ASC Topic 840, Leases. The Company elected the practical
expedients available under the provisions of the new standard, including not reassessing whether expired or existing contracts are or
contain leases; not reassessing the classification of expired or existing leases; and not reassessing the initial direct cost for any
existing leases. Upon adoption, the Company recognized an operating lease liability of $<span id="xdx_90B_eus-gaap--OperatingLeaseLiability_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zrmqbtYG3kd5" title="Operating lease liability">626,699</span> and a corresponding operating right-of-use
asset of $<span id="xdx_90F_eus-gaap--OperatingLeaseRightOfUseAsset_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zmvU4EdFzMed" title="Operating right use of asset">681,327</span>.</span></p>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Recently adopted accounting standards [Policy Text Block]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI https://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4273-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941378&amp;loc=d3e61044-112788<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityMethodInvestmentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for equity method of accounting for investments and other interests. Investment includes, but is not limited to, unconsolidated subsidiary, corporate joint venture, noncontrolling interest in real estate venture, limited partnership, and limited liability company. Information includes, but is not limited to, ownership percentage, reason equity method is or is not considered appropriate, and accounting policy election for distribution received.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 21D<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=SL94080555-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityMethodInvestmentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e543-108305<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MarketableSecuritiesPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for investment classified as marketable security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 320<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126980459&amp;loc=d3e62652-112803<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MarketableSecuritiesPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130561-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130563-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI https://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130563-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130564-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -URI https://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e4975-111524<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5212-111524<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=SL6953423-111524<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5093-111524<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5033-111524<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021307128456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Schedule of Goodwill</a></td>
<td class="text"><p id="xdx_89E_eus-gaap--ScheduleOfGoodwillTextBlock_zNKvrRjW2GS9" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span id="xdx_8B1_zChWuxf0sQvi" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt">Schedule
of Goodwill</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 80%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right"><span id="xdx_906_eus-gaap--Goodwill_iS_c20220101__20220331_zoVCUAo7egf3" title="Goodwil - beginning">14,706,818</span></td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Measurement period adjustments</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right"><span id="xdx_90B_eus-gaap--GoodwillTranslationAndPurchaseAccountingAdjustments_c20220101__20220331_zHygSGmTLytk" title="Measurement period adjustments">101,593</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span id="xdx_90E_eus-gaap--Goodwill_iE_c20220101__20220331_zRLiEXrabRhe" title="Goodwill - Ending">14,808,411</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Intangible Assets, Net</a></td>
<td class="text"><p id="xdx_89F_eus-gaap--ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_zJa2P4Y8T406" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table presents details of the Company&#8217;s intangible assets, excluding goodwill:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BF_zgE3NboDLkA8" style="display: none">Schedule
of Intangible Assets, Net</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F57_zBFu4bsO6F3f" style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_90C_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zDKmPNrA2Mje" title="Estimated useful lives in years, term">Indefinite</span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zkmfhabgZoP3" style="width: 12%; text-align: right" title="Intangible assets, gross">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_z6Z76aPq5Hpj" style="width: 12%; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0563">-</span></td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zvokvOusumng" style="width: 12%; text-align: right" title="Intangible assets, net">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_90D_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zzdfILwGsPYc" title="Estimated useful lives in years">2.7</span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_zohu0FcEjMYf" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_980_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z4Ei9KS0LzZ8" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization">(106,667</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z53hK2brfdw2" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net">987,333</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331_zkagNvevVauj" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331_zXLIfDm0qjnj" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization">(106,667</td><td style="padding-bottom: 2.5pt; text-align: left">)</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98B_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331_zNQux8I6Hn0e" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net">27,088,333</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td style="text-align: center; font-weight: bold">Weighted-Average</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Gross</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center">&#160;</td>
    <td colspan="2" style="text-align: center">&#160;</td><td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Net</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td id="xdx_F5F_zELYSdNrVfW1" style="text-align: center; font-weight: bold">Useful Life (1)</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Accumulated</td><td style="text-align: center; font-weight: bold">&#160;</td><td style="text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="text-align: center; font-weight: bold">Carrying</td><td style="text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(in Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amortization</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Amount</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 38%; text-align: left">In-process research and development</td><td style="width: 2%">&#160;</td>
    <td style="text-align: center; width: 12%"><span id="xdx_903_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zJx29r9pxK9g" title="Estimated useful lives in years, term">Indefinite</span></td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98B_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, gross">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zPXKJERjBEXd" style="width: 12%; text-align: right" title="Less accumulated amortization">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0585">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, net">26,101,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Non-competition agreements</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: center"><span id="xdx_901_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zpya74ClTkIe" title="Estimated useful lives in years">2.7</span></td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z74rMJDRk40h" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0593">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net">1,094,000</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left">Total intangible assets</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: center">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_982_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20211231_zCJzpe3CXbJa" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231_zsnEOWSQhXQb" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"><span style="-sec-ix-hidden: xdx2ixbrl0599">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98D_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_c20211231_zHPEkGXDPGm8" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net">27,195,000</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
</table>

<p style="margin: 0">&#160;</p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"/>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 6pt; width: 100%"><tr style="vertical-align: top; text-align: justify">
<td id="xdx_F04_zWP69sqgYFp1" style="width: 15pt; text-align: right">(1)</td><td style="width: 5pt"/><td id="xdx_F1D_zBPHoGCJYju4" style="text-align: justify">Based on weighted-average useful life established as of the acquisition date.</td>
</tr></table>



<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1A<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=SL108378252-109267<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021305908808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Schedule of Fair Value Assets and Liabilities</a></td>
<td class="text"><p id="xdx_89D_eus-gaap--FairValueAssetsMeasuredOnRecurringBasisTextBlock_z1TUnPHxPCpf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes the assets measured at fair value on a recurring basis as of March 31, 2022, and December 31, 2021, by level
within the fair value hierarchy:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B3_zn0KXPJ85aM5" style="display: none">Schedule of Fair Value Assets and Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_492_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zGoKCJzpIDg1" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zzmeErf3pD07" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_490_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_zO0RfpKIVpef" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zKMZBJbGrbO4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">March 31, 2022</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; width: 36%; text-align: left">Contingent consideration - common stock</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0608">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0609">&#160;</span>-</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">6,013,939</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">6,013,939</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0613">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0614">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,038,812</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,038,812</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0618">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0619">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49B_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zAmUwVrBVhw" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zYpB9BBZWTFb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49A_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_z4YHECf1mR8a" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_496_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zPwwxwJxes51" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; text-align: center">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 1)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 2)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">(Level 3)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Total</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Assets:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--MarketableSecurities_iI_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; width: 36%; text-align: left">Marketable securities (certificates of deposit)</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">&#160;&#160;&#160;&#160;<span style="-sec-ix-hidden: xdx2ixbrl0623">&#160;</span>-</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">1,255,266</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0625">-</span></td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 12%; text-align: right">1,255,266</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AssetsFairValueDisclosure_iI_pp0p0_zgIfNXbnLOh2" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total assets measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0628">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,255,266</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0630">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,255,266</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Liabilities:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0_zgr84fZvOWrl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">Contingent consideration - common stock</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0633">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0634">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">8,684,669</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">8,684,669</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_408_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0_z0x9aLWcjeha" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Contingent consideration - warrants</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0638">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0639">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,747,972</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,747,972</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0_zO5KsAJZbvZd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Total liabilities measured at fair value</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0643">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right"><span style="-sec-ix-hidden: xdx2ixbrl0644">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">10,432,641</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">10,432,641</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock', window );">Schedule of Changes in Fair Value Measurement</a></td>
<td class="text"><p id="xdx_89F_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_zmbwcccQ4PC3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
changes for Level 3 items measured at fair value on a recurring basis are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 60pt"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_8B9_zyJTykKEdo26" style="display: none">Schedule of Changes in Fair Value Measurement</span>&#160;</span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_49B_20220101__20220331_zg7E92CjoGm9" style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iS_pp0p0_zvJD5kRCGtD1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Fair value as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">10,432,641</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_ecustom--ContingentConsideredIssuedForBusinessAcquisitions_i_pp0p0" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">Change in fair value of contingent consideration issued for business acquisitions</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">(3,379,890</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr id="xdx_406_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iE_zrChinXAcgF1" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Fair value as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">7,052,751</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock', window );">Schedule of Contingent Consideration Common Stock and Warrants</a></td>
<td class="text"><p id="xdx_890_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_zwZSxdEWWSng" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
fair value of the contingent consideration is based on the fair value of the contingent consideration-common stock and contingent consideration-warrants.
The fair value of the contingent consideration-common stock is equal to the probability-adjusted value of the Company&#8217;s common
stock as of March 31, 2022. The fair value of the contingent consideration-warrants is equal to the probability adjusted value of a call
option with terms consistent with the terms of the warrants as of March 31, 2022. Prior to the probability adjustments, the warrants
were valued based on the following inputs:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BD_zPgps9VUSTF9" style="display: none">Schedule of Contingent Consideration Common Stock and Warrants</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"><p style="font: 10pt/107% Times New Roman, Times, Serif; margin: 0"><b>March
                                            31, 2022</b></p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">December 31, 2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Stock price</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_za3eAJEpvUg4" style="width: 16%; text-align: right" title="Warrants measurement input">6.18</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_zz2npUQSdEdd" style="width: 16%; text-align: right">8.93</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>Strike price</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zTHjStxkGZ7d" style="text-align: right" title="Warrants measurement input">9.13</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zeQyIHyXFiD7" style="text-align: right">9.13</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Volatility</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zCTHGvL6FAhl" style="text-align: right" title="Warrants measurement input">77.50</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zgzZ47AMeA9" style="text-align: right">80.00</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Risk-free rate</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zakllESA7O3k" style="text-align: right" title="Warrants measurement input">2.40</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zd39BWd7xZZi" style="text-align: right">1.30</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Expected term</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_905_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20220331_zvUDBAY5x1e6" title="Expected term">4.8</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span id="xdx_90A_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20211231_zxHQ9Ir6Xws1" title="Expected term">5.0</span></td><td style="text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of financial instruments measured at fair value, including those classified in shareholders' equity measured on a recurring or nonrecurring basis. Disclosures include, but are not limited to, fair value measurements recorded and the reasons for the measurements, level within the fair value hierarchy in which the fair value measurements are categorized and transfers between levels 1 and 2. Nonrecurring fair value measurements are those that are required or permitted in the statement of financial position in particular circumstances.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19279-110258<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2C<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=SL7498348-110258<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of input and valuation technique used to measure fair value and change in valuation approach and technique for each separate class of asset and liability measured on recurring and nonrecurring basis.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306549816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock', window );">Summary of Revenue by Geographic Area</a></td>
<td class="text"><p id="xdx_891_eus-gaap--ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_zjzpB3Z6a1Vl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table sets forth revenue by geographic area:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B7_zOk31aA4QC46" style="display: none">Summary of Revenue by Geographic Area</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%; text-align: left">United States</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_989_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember_zO6KdVB6crp3" style="width: 16%; text-align: right" title="Revenue">14,218,398</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_987_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember_zH1raLFWw5ak" style="width: 16%; text-align: right" title="Revenue">12,493,950</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Rest of World</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zZCwleu1HUqf" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue">8,480,646</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_983_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zQMBfqldHG95" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue">7,530,819</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt">Total</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_981_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331_zNqA66xgGJe2" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue">22,699,044</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_986_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331_zzGdsVCWa1l4" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue">20,024,769</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Percentage of revenue by area:</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">United States</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zJNqsVftaIP7" style="text-align: right" title="Percentage of revenue">63</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_z3vDjFJaFwp" style="text-align: right" title="Percentage of revenue">62</td><td style="text-align: left">%</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Rest of World</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zvHtnH8YfXr4" style="text-align: right" title="Percentage of revenue">37</td><td style="text-align: left">%</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zpCmkodyV2Dc" style="text-align: right" title="Percentage of revenue">38</td><td style="text-align: left">%</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of Deferred Revenue</a></td>
<td class="text"><p id="xdx_89A_eus-gaap--ContractWithCustomerAssetAndLiabilityTableTextBlock_zRNSM86TC98g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Changes
in the Company&#8217;s deferred revenue balance for the three months ended March 31, 2022 were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BC_zb02F7FPfdY3" style="display: none">Schedule of Deferred Revenue</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%">Balance as of December 31, 2021</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td id="xdx_982_eus-gaap--ContractWithCustomerLiability_iS_c20220101__20220331_zOG7i8rV0ufb" style="width: 18%; text-align: right" title="Deferred revenue, beginning balance">150,000</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; padding-bottom: 1pt; text-align: left">Revenue recognized included in deferred revenue balance at the beginning of the period</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ContractWithCustomerLiabilityRevenueRecognized_iN_di_c20220101__20220331_zK22NJYy1kc5" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue recognized included in deferred revenue balance at the beginning of the period">(150,000</td><td style="padding-bottom: 1pt; text-align: left">)</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Balance as of March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td id="xdx_98E_eus-gaap--ContractWithCustomerLiability_iE_c20220101__20220331_zAnWErWeVaAb" style="border-bottom: Black 2.5pt double; text-align: right" title="Deferred revenue, Ending balance"><span style="-sec-ix-hidden: xdx2ixbrl0704">-</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306543816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of Basic and Diluted Earnings Per Share</a></td>
<td class="text"><p id="xdx_895_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zIjgl2JqHws8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table reconciles the numerator and the denominator used to calculate basic and diluted earnings per share for three months
ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_z6hrEutjv8gc" style="display: none">Schedule of Basic and Diluted Earnings Per Share</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zUpmCzAFxnG6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49C_20210101__20210331_zqoPs1NUpO15" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-weight: bold">Numerator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_405_eus-gaap--NetIncomeLoss_zMI7jvntCw3g" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; width: 60%; text-align: left">Net income, as reported</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right">11,714,595</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right">7,898,975</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="font-weight: bold">Denominator</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40D_ecustom--WeightedAverageNumberOfBasicSharesOutstanding_zCAt5rFLNPri" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Weighted average shares, basic</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">33,935,570</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">28,662,885</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--WeightedAverageNumberDilutedSharesOutstandingAdjustment_zlKviuHvxXe" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Dilutive effect of stock options, warrants and RSUs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">775,906</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">1,339,844</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_zeqgFoJIoihh" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; text-align: left">Shares used to compute diluted earnings per share</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">34,711,476</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td style="border-bottom: Black 2.5pt double; text-align: right">30,002,729</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_ecustom--EarningsBasicPerShare_pid_zILOrADzfQfl" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>Basic earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.35</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.28</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--EarningsPerShareDiluted_pid_z5ENeZbAszth" style="vertical-align: bottom; background-color: White">
    <td>Diluted earnings per share</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.34</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">0.26</td><td style="text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021305104952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of Option Activity</a></td>
<td class="text"><p id="xdx_891_eus-gaap--ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ztKgdy8Bqvh3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes option activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B9_zFj1t5YgHYJ7" style="display: none">Schedule of Option Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; text-align: center">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of Options</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; text-align: center; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iS_c20220101__20220331_zm8ni8HOyp94" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Options Outstanding, Beginning">1,111,363</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iS_pid_c20220101__20220331_zjFS2oGGdLC" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price Outstanding, Beginning">2.12</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_98C_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331_zAqHrRACGyn1" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value Outstanding, Beginning">1.31</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_pid_dtY_c20220101__20220331_zjmfQduMY8Jh" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted-average Remaining Contractual Life (years) Outstanding, Beginning">6.62</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_c20220101__20220331_zFZq5mwhakx6" style="text-align: right" title="Number of Options Outstanding, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0752">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zLJwzTPT313j" style="text-align: right" title="Weighted Average Exercise Price Granted"><span style="-sec-ix-hidden: xdx2ixbrl0754">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zMNO7zKKMxqh" style="text-align: right" title="Weighted Average Fair Value Granted"><span style="-sec-ix-hidden: xdx2ixbrl0756">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20220101__20220331_z2lnJiwKu0kd" style="text-align: right" title="Number of Options Outstanding, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0758">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zpscqZ4oqLGf" style="text-align: right" title="Weighted Average Exercise Price Expired"><span style="-sec-ix-hidden: xdx2ixbrl0760">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_984_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_c20220101__20220331_ziJTEheYQg9i" style="text-align: right" title="Weighted Average Fair Value Expired"><span style="-sec-ix-hidden: xdx2ixbrl0762">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_c20220101__20220331_zm9zTDNfUqg1" style="text-align: right" title="Number of Options Outstanding, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0764">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zI60XZcOrfIg" style="text-align: right" title="Weighted Average Exercise Price Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0766">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_zTusk0Q1HwEi" style="text-align: right" title="Weighted Average Fair Value Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0768">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_984_ecustom--StockIssuedDuringPeriodSharesStockOptionsExercised1_iN_di_c20220101__20220331_zmfWwUWz21fk" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options Outstanding, Exercised">(45,456</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_pid_c20220101__20220331_zH4PiywzNzl7" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price Exercised">1.10</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98B_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_iE_pid_c20220101__20220331_zctHiNPIvZE" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value Exercised">0.51</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iE_c20220101__20220331_z1G0zrKY3xE6" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Outstanding, Ending">1,065,907</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zWUT54m7tuGe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price Outstanding, Ending">2.17</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_98A_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331_z1CaCrgSNUX5" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value Outstanding, Ending">1.35</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_905_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_dtY_c20220101__20220331_zHaUED7Uv6C1" title="Weighted-average Remaining Contractual Life (years) Outstanding, Ending">6.65</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td>&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Exercisable at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_iE_c20220101__20220331_ziLdpTMQn0j3" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Exercisable Ending">1,049,241</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zwUa7Rgtndfk" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Exercisable Ending">2.05</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_984_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_iE_pid_c20220101__20220331_z1WB4Z83K5md" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Exercisable Ending">1.21</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90D_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zNnzpFa7cASa" title="Weighted-average Remaining Contractual Life (years), Exercisable Ending">6.63</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Schedule of Outstanding Restricted Stock Units and Related Activity</a></td>
<td class="text"><p id="xdx_892_eus-gaap--ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_zkR6cdqpf4h" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
grant date fair value of RSUs granted is determined using the closing market price of the Company&#8217;s common stock on the grant date
with the associated compensation expense amortized over the vesting period of the awards. The following table sets forth the outstanding
RSUs and related activity for the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B1_zCzRWJbV2WC1" style="display: none">Schedule of Outstanding Restricted Stock Units and Related Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Number of RSUs</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Weighted Average Grant Date Fair Value</td><td style="text-align: center; padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; width: 60%">Unvested at December 31, 2021</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iS_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zj0haNKa41L6" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Number of Restricted Stock Units, Outstanding Beginning">1,267,415</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 1pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 1pt; width: 1%; text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zPDQwjPVPZQ7" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Beginning">9.94</td><td style="padding-bottom: 1pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_983_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zBvpfwns7NXf" style="text-align: right" title="Number of Restricted Stock Units, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0808">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zbfceDCgQzG1" style="text-align: right" title="Weighted Average Grant Date Fair Value, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0810">-</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Vested</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsr2FAUFsY15" style="text-align: right" title="Number of Restricted Stock Units, Vested">(68,750</td><td style="text-align: left">)</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zdoJlsjmka6f" style="text-align: right" title="Weighted Average Grant Date Fair Value, Vested">10.23</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; padding-left: 10pt">Forfeited/Cancelled</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zd2CW2RnTX41" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Restricted Stock Units, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0816">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zRdW35RSmsJ5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Grant Date Fair Value, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0818">-</span></td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt">Unvested at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iE_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zF15KGf5pLSi" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Restricted Stock Units, Outstanding Ending">1,198,665</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_z4ziqRB3cBJe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Ending">9.92</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock', window );">Schedule of Warrant Activity</a></td>
<td class="text"><p id="xdx_899_eus-gaap--ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_z1wJP62NylF4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
following table summarizes warrant activity during the three months ended March 31, 2022:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8BA_zmWowKLiH7td" style="display: none">Schedule of Warrant Activity</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Number of Warrants</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Fair Value</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="font-weight: bold; padding-bottom: 1pt">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Remaining Contractual Life (Years)</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; width: 36%">Outstanding at December 31, 2021</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iS_c20220101__20220331_zINttDYfthV3" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Warrants Outstanding, Beginning">526,281</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_iS_c20220101__20220331_zaEjjCFGB8If" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price, Beginning">8.15</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">$</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iS_c20220101__20220331_zAMBLeDQI2xc" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value, Beginning">4.01</td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 2%">&#160;</td>
    <td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; width: 12%; text-align: right"><span id="xdx_901_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zXxfhiYJ8YQj" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning">4.7</span></td><td style="padding-bottom: 2.5pt; width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Granted</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_c20220101__20220331_zFTwFSliwhhb" style="text-align: right" title="Number of Warrants Outstanding, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0838">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zOtZnFemB6X9" style="text-align: right" title="Weighted Average Exercise Price, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0840">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_z8woLIlZ5ZZb" style="text-align: right" title="Weighted Average Fair Value, Granted"><span style="-sec-ix-hidden: xdx2ixbrl0842">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt">Expired</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_iN_di_c20220101__20220331_zwxKLvtGG0Z4" style="text-align: right" title="Number of Warrants Outstanding, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0844">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_987_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_z5XhppworVa7" style="text-align: right" title="Weighted Average Exercise Price, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0846">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_c20220101__20220331_zI1ZFD4Jam0g" style="text-align: right" title="Weighted Average Fair Value, Expired"><span style="-sec-ix-hidden: xdx2ixbrl0848">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt">Forfeited/Cancelled</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_c20220101__20220331_z0igDcUrLtCg" style="text-align: right" title="Number of Warrants Outstanding, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0850">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zSDpvx9C9ii6" style="text-align: right" title="Weighted Average Exercise Price, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0852">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_znqvowCE0we1" style="text-align: right" title="Weighted Average Fair Value, Forfeited/Cancelled"><span style="-sec-ix-hidden: xdx2ixbrl0854">-</span></td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">&#160;</td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; padding-bottom: 1pt">Exercised</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_iN_di_c20220101__20220331_zUDzI34kvrZi" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Warrants Outstanding, Exercised">(50,000</td><td style="padding-bottom: 1pt; text-align: left">)</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_c20220101__20220331_zi3iWflCO9Kc" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price, Exercised">2.00</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td id="xdx_985_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zCkH6fj1orj5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value, Exercised">1.22</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt; text-align: right">&#160;</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt">Outstanding at March 31, 2022</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">&#160;</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iE_c20220101__20220331_zUIDeoF7zjq5" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Warrants Outstanding, Ending">476,281</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_989_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_iE_c20220101__20220331_zi0ar9QRWgNe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Ending">8.80</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">$</td><td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iE_c20220101__20220331_zKatffPbVt73" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Ending">2.82</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt; text-align: right"><span id="xdx_90F_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_dtY_c20220101__20220331_zujqIlxFtNni" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Ending">4.8</span></td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>


<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock', window );">Schedule of Recognized Stock-based Compensation Expense</a></td>
<td class="text"><p id="xdx_89D_eus-gaap--ScheduleOfShareBasedCompensationActivityTableTextBlock_zPYBrbJSqFV2" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The
Company recognized stock-based compensation expense related to the types of awards discussed above as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z76fbZFhXxG8" style="display: none">Schedule of Recognized Stock-based Compensation Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="display: none; vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_491_20220101__20220331_zSzyjgXgojKj" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_498_20210101__20210331_zLEHlnmmSMdb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31,</td><td style="padding-bottom: 1pt">&#160;</td></tr>
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">2021</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--EmployeeStockOptionMember_ze6yUBk9hx1k" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 60%">Options</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right">40,874</td><td style="width: 1%; text-align: left">&#160;</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 16%; text-align: right">76,672</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsQ7WzlCG6c3" style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Restricted stock units</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">1,334,223</td><td style="text-align: left">&#160;</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">1,396,440</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_400_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--StockCompensationPlanMember_zm2AWY00LFua" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt">Stock</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0892">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">39,900</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_401_eus-gaap--AllocatedShareBasedCompensationExpense_zeoC4gLwIlK9" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; padding-left: 10pt; text-align: left">Total stock-based compensation expense</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,375,097</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">1,513,012</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of activity for award under share-based payment arrangement. Includes, but is not limited to, outstanding award at beginning and end of year, granted, exercised, forfeited, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 50<br> -Section S99<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6784392&amp;loc=d3e188667-122775<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303668840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Schedule of Lease Expense</a></td>
<td class="text"><p id="xdx_89B_eus-gaap--LeaseCostTableTextBlock_zhGVF0ucspb4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">For
the three months ended March 31, 2022, components of lease expense are summarized as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B4_zouiYmOacxib" style="display: none">Schedule
of Lease Expense</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="text-align: center; padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_495_20220101__20220331_z6tVJLHMb66l" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--OperatingLeaseCost_maLCz2lp_zH9otZYmiV92" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 72%; text-align: left">Operating lease costs</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 24%; text-align: right">86,588</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40E_eus-gaap--ShortTermLeaseCost_maLCz2lp_z0BHr5iP7Dwf" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Short-term lease costs</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">76,080</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--LeaseCost_iT_mtLCz2lp_zrKTVxoTGlc7" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease costs</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">162,668</td><td style="text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock', window );">Schedule of Maturities on Company Lease Liabilities</a></td>
<td class="text"><p id="xdx_896_ecustom--ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_zVVzrDGvgdsf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
of March 31, 2022, the maturities of the Company&#8217;s lease liabilities are as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_zUJ5ZslRfQX1" style="display: none">Schedule
of Maturities on Company Lease Liabilities</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_494_20220331_zBhZuJRG2BR2" style="border-bottom: Black 1pt solid; font-weight: bold"><p style="text-align: center; margin-top: 0; margin-bottom: 0">Year Ending</p>
                                              <p style="text-align: center; margin-top: 0; margin-bottom: 0">December 31,</p></td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_iI_maLOLLPz8za_zhHwGPyV3gdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%">2022 (remainder)</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">221,350</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_409_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_iI_maLOLLPz8za_zLFPq8utmS88" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">303,059</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_iI_maLOLLPz8za_zDoXm5VHYgdd" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2024</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">50,774</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearThree_iI_maLOLLPz8za_z15HGB0gFQv5" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2025</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0936">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearFour_iI_maLOLLPz8za_zBWq2EvaX9C9" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-align: left">2026</td><td>&#160;</td>
    <td style="text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0938">&#160;</span></td><td style="text-align: right">-</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_409_ecustom--LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_iI_maLOLLPz8za_zhoLnWbBfXpa" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt">Thereafter</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left"><span style="-sec-ix-hidden: xdx2ixbrl0940">&#160;</span></td><td style="border-bottom: Black 1pt solid; text-align: right">-</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40B_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDue_iTI_mtLOLLPz8za_zEuyMBoF1m2g" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Total lease payments</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">575,183</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_iI_zBlcdvQfROwh" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: imputed interest</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">16,212</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiability_iI_zzYB8uOuq2r3" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Present value of operating lease liabilities</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">558,971</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_40A_eus-gaap--OperatingLeaseLiabilityCurrent_iI_zCddX53lu3fi" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; text-align: left">Less: current portion</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">283,299</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_40F_eus-gaap--OperatingLeaseLiabilityNoncurrent_iI_zVaNJB2rcYo4" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Long-term portion</td><td>&#160;</td>
    <td style="text-align: left">$</td><td style="text-align: right">275,672</td><td style="text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ScheduleOfOperatingLeaseTableTextBlock', window );">Schedule of Other Information Related to Operating Lease</a></td>
<td class="text"><p id="xdx_89C_ecustom--ScheduleOfOperatingLeaseTableTextBlock_z2pxsh2kbXMk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">Other
information related to operating leases was as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B0_zcoHjjw4IjUj" style="display: none">Schedule
of Other Information Related to Operating Lease</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_497_20220101__20220331_zsSIqJQrcOkd" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold">Three Months Ended March 31, 2022</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_404_eus-gaap--OperatingLeasePayments_zpgMXeWO2Xme" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 78%; text-align: left">Cash paid for operating leases included in operating cash flows</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">154,882</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: White">
    <td style="text-align: left">Remaining lease term of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_900_eus-gaap--OperatingLeaseWeightedAverageRemainingLeaseTerm1_iI_dtY_c20220331_zuSeRQcIqvPb" title="Remaining lease term of operating leases">2</span>
years</span></td><td style="text-align: left">&#160;</td></tr>
  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-align: left">Discount rate of operating leases</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td id="xdx_981_eus-gaap--OperatingLeaseWeightedAverageDiscountRatePercent_iI_pid_dp_uPure_c20220331_zON7zcW1s8cl" style="text-align: right" title="Discount rate of operating leases">3.1</td><td style="text-align: left">%</td></tr>
  </table>

<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of Future Minimum Lease Payments</a></td>
<td class="text"><p id="xdx_896_eus-gaap--LesseeOperatingLeaseLiabilityMaturityTableTextBlock_zFGBOl3587Fi" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">As
previously disclosed in our Annual Report on Form 10-K for the year ended December 31, 2021, future lease payments under ASC 840 for
operating leases were as follows:</span></p>

<p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">&#160;<span id="xdx_8B6_z4qq0XhUJzac" style="display: none">Schedule of Future Minimum Lease Payments</span></span></p>

<table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%">
  <tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-weight: bold">Year Ending December 31,</td><td style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td>
    <td colspan="2" id="xdx_49E_20220331_zCSh6K2O3S73" style="border-bottom: Black 1pt solid; font-weight: bold">&#160;</td><td style="padding-bottom: 1pt; font-weight: bold">&#160;</td></tr>
  <tr id="xdx_402_eus-gaap--OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_iI_maOLFMPz5Lk_z2Nsfjwe9kN" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; width: 78%; text-align: left">2022</td><td style="width: 2%">&#160;</td>
    <td style="width: 1%; text-align: left">$</td><td style="width: 18%; text-align: right">293,595</td><td style="width: 1%; text-align: left">&#160;</td></tr>
  <tr id="xdx_40C_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueCurrent_iI_maOLFMPz5Lk_zzEsZPvLCn8a" style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-align: left">2023</td><td>&#160;</td>
    <td style="text-align: left">&#160;</td><td style="text-align: right">303,059</td><td style="text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueInTwoYears_iI_maOLFMPz5Lk_zVhhO38N9Mid" style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left">2024</td><td style="padding-bottom: 1pt">&#160;</td>
    <td style="border-bottom: Black 1pt solid; text-align: left">&#160;</td><td style="border-bottom: Black 1pt solid; text-align: right">50,774</td><td style="padding-bottom: 1pt; text-align: left">&#160;</td></tr>
  <tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDue_iTI_mtOLFMPz5Lk_zus8e4KpaRV4" style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-align: left">Total lease payments</td><td style="padding-bottom: 2.5pt">&#160;</td>
    <td style="border-bottom: Black 2.5pt double; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; text-align: right">647,428</td><td style="padding-bottom: 2.5pt; text-align: left">&#160;</td></tr>
  </table>

<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Schedule of maturities on company lease liabilities [Table Text Block]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ScheduleOfOperatingLeaseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Schedule of operating lease [Table Text Block]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ScheduleOfOperatingLeaseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021302604968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Jan. 02, 2022</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts receivable</a></td>
<td class="nump">$ 22,379,861<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,508,779<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Doubtful accounts</a></td>
<td class="nump">717,458<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">669,597<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net</a></td>
<td class="nump">21,662,403<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,839,182<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory</a></td>
<td class="nump">4,901,057<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,004,169<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Inventory finished goods</a></td>
<td class="nump">4,119,549<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">983,088<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterials', window );">Inventory raw materials</a></td>
<td class="nump">781,508<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,021,081<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">3,771,327<span></span>
</td>
<td class="nump">$ 2,217,063<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease liability</a></td>
<td class="nump">558,971<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating right use of asset</a></td>
<td class="nump">$ 604,837<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 626,699<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating right use of asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 681,327<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=CODX_ThreeCustomersTogetherMember', window );">Three Customers Together [Member] | Revenue Benchmark [Member] | Customer Concentration Risk [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">54.00%<span></span>
</td>
<td class="nump">57.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=CODX_TwoCustomersTogetherMember', window );">Two Customers Together [Member] | Accounts Receivable [Member] | Customer Concentration Risk [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">62.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">66.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life of property</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductInformationLineItems', window );"><strong>Product Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life of property</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterials</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=CODX_ThreeCustomersTogetherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=CODX_ThreeCustomersTogetherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=CODX_TwoCustomersTogetherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=CODX_TwoCustomersTogetherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303881656">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Business Combinations (Details Narrative) - shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Warrants to purchase shares of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">456,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember', window );">Advanced Conceptions, Inc. and Idaho Molecular, Inc. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_StockIssuedDuringPeriodSharesExchanged', window );">Number of shares exchanged</a></td>
<td class="nump">3,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_StockIssuedDuringPeriodSharesContingentConsideration', window );">Number of shares on contingent consideration</a></td>
<td class="nump">1,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Warrants to purchase shares of common stock</a></td>
<td class="nump">456,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityMethodInvestmentOwnershipPercentage', window );">Equity method investment ownership percentage</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_StockIssuedDuringPeriodSharesContingentConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Stock issued during period shares contingent consideration.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_StockIssuedDuringPeriodSharesContingentConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_StockIssuedDuringPeriodSharesExchanged">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Stock issued during period shares exchanged.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_StockIssuedDuringPeriodSharesExchanged</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityMethodInvestmentOwnershipPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of ownership of common stock or equity participation in the investee accounted for under the equity method of accounting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityMethodInvestmentOwnershipPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021307013064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Goodwill (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwil - beginning</a></td>
<td class="nump">$ 14,706,818<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments', window );">Measurement period adjustments</a></td>
<td class="nump">101,593<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill - Ending</a></td>
<td class="nump">$ 14,808,411<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=123586518&amp;loc=d3e961-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303909480">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Schedule of Intangible Assets, Net (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 27,195,000<span></span>
</td>
<td class="nump">$ 27,195,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less accumulated amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(106,667)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 27,088,333<span></span>
</td>
<td class="nump">$ 27,195,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember', window );">In Process Research and Development [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_IndefiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful lives in years, term</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">Indefinite<span></span>
</td>
<td class="text">Indefinite<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 26,101,000<span></span>
</td>
<td class="nump">$ 26,101,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less accumulated amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">26,101,000<span></span>
</td>
<td class="nump">26,101,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Noncompete Agreements [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, gross</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,094,000<span></span>
</td>
<td class="nump">1,094,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less accumulated amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(106,667)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 987,333<span></span>
</td>
<td class="nump">$ 1,094,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Estimated useful lives in years</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">2 years 8 months 12 days<span></span>
</td>
<td class="text">2 years 8 months 12 days<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Based on weighted-average useful life established as of the acquisition date.</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_IndefiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indefinite lived intangible asset useful life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_IndefiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303793096">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Schedule of Fair Value Assets and Liabilities (Details) - Fair Value, Recurring [Member] - USD ($)<br></strong></div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToCommonStock', window );">Contingent consideration - common stock</a></td>
<td class="nump">$ 6,013,939<span></span>
</td>
<td class="nump">$ 8,684,669<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToWarrants', window );">Contingent consideration - warrants</a></td>
<td class="nump">1,038,812<span></span>
</td>
<td class="nump">1,747,972<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total liabilities measured at fair value</a></td>
<td class="nump">7,052,751<span></span>
</td>
<td class="nump">10,432,641<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecurities', window );">Marketable securities (certificates of deposit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,255,266<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total assets measured at fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,255,266<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Inputs, Level 1 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToCommonStock', window );">Contingent consideration - common stock</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToWarrants', window );">Contingent consideration - warrants</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total liabilities measured at fair value</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecurities', window );">Marketable securities (certificates of deposit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total assets measured at fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Inputs, Level 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToCommonStock', window );">Contingent consideration - common stock</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToWarrants', window );">Contingent consideration - warrants</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total liabilities measured at fair value</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecurities', window );">Marketable securities (certificates of deposit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,255,266<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total assets measured at fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,255,266<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Inputs, Level 3 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToCommonStock', window );">Contingent consideration - common stock</a></td>
<td class="nump">6,013,939<span></span>
</td>
<td class="nump">8,684,669<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_FairValueOfContingentConsiderationToWarrants', window );">Contingent consideration - warrants</a></td>
<td class="nump">1,038,812<span></span>
</td>
<td class="nump">1,747,972<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosure', window );">Total liabilities measured at fair value</a></td>
<td class="nump">$ 7,052,751<span></span>
</td>
<td class="nump">10,432,641<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MarketableSecurities', window );">Marketable securities (certificates of deposit)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosure', window );">Total assets measured at fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_FairValueOfContingentConsiderationToCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of contingent consideration to common stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_FairValueOfContingentConsiderationToCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_FairValueOfContingentConsiderationToWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of contigent consideration to warrants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_FairValueOfContingentConsiderationToWarrants</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of financial and nonfinancial obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MarketableSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in marketable security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MarketableSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021305873960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Changes in Fair Value Measurement (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent', window );">Fair value as of December 31, 2021</a></td>
<td class="nump">$ 10,432,641<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ContingentConsideredIssuedForBusinessAcquisitions', window );">Change in fair value of contingent consideration issued for business acquisitions</a></td>
<td class="num">(3,379,890)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent', window );">Fair value as of March 31, 2022</a></td>
<td class="nump">$ 7,052,751<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ContingentConsideredIssuedForBusinessAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Contingent considered issued for business acquisitions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ContingentConsideredIssuedForBusinessAcquisitions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph b<br> -URI https://asc.fasb.org/extlink&amp;oid=126966325&amp;loc=d3e6819-128478<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021301837160">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Schedule of Contingent Consideration Common Stock and Warrants (Details)<br></strong></div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurement Inputs and Valuation Techniques [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstandingTerm', window );">Expected term</a></td>
<td class="text">4 years 9 months 18 days<span></span>
</td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputSharePriceMember', window );">Measurement Input, Share Price [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurement Inputs and Valuation Techniques [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstandingMeasurementInput', window );">Warrants measurement input</a></td>
<td class="nump">6.18<span></span>
</td>
<td class="nump">8.93<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=CODX_MeasurementInputStrikePriceMember', window );">Measurement Input Strike Price [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurement Inputs and Valuation Techniques [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstandingMeasurementInput', window );">Warrants measurement input</a></td>
<td class="nump">9.13<span></span>
</td>
<td class="nump">9.13<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputPriceVolatilityMember', window );">Measurement Input, Price Volatility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurement Inputs and Valuation Techniques [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstandingMeasurementInput', window );">Warrants measurement input</a></td>
<td class="nump">77.50<span></span>
</td>
<td class="nump">80.00<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputRiskFreeInterestRateMember', window );">Measurement Input, Risk Free Interest Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems', window );"><strong>Fair Value Measurement Inputs and Valuation Techniques [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstandingMeasurementInput', window );">Warrants measurement input</a></td>
<td class="nump">2.40<span></span>
</td>
<td class="nump">1.30<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WarrantsAndRightsOutstandingMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of input used to measure outstanding warrant and right embodying unconditional obligation requiring redemption by transferring asset at specified or determinable date or upon event certain to occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WarrantsAndRightsOutstandingMeasurementInput</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:decimalItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WarrantsAndRightsOutstandingTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period between issuance and expiration of outstanding warrant and right embodying unconditional obligation requiring redemption by transferring asset at specified or determinable date or upon event certain to occur, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WarrantsAndRightsOutstandingTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputSharePriceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputSharePriceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=CODX_MeasurementInputStrikePriceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=CODX_MeasurementInputStrikePriceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputPriceVolatilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputPriceVolatilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputRiskFreeInterestRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputRiskFreeInterestRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303760760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Revenue by Geographic Area (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 22,699,044<span></span>
</td>
<td class="nump">$ 20,024,769<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 14,218,398<span></span>
</td>
<td class="nump">$ 12,493,950<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas [Member] | Revenue Benchmark [Member] | Geographic Concentration Risk [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Percentage of revenue</a></td>
<td class="nump">63.00%<span></span>
</td>
<td class="nump">62.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=CODX_RestOfWorldMember', window );">Rest of World [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 8,480,646<span></span>
</td>
<td class="nump">$ 7,530,819<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=CODX_RestOfWorldMember', window );">Rest of World [Member] | Revenue Benchmark [Member] | Geographic Concentration Risk [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Percentage of revenue</a></td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">38.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AmericasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=CODX_RestOfWorldMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=CODX_RestOfWorldMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021305805176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Deferred Revenue (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue, beginning balance</a></td>
<td class="nump">$ 150,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized included in deferred revenue balance at the beginning of the period</a></td>
<td class="num">(150,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue, Ending balance</a></td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021301830088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Basic and Diluted Earnings Per Share (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income, as reported</a></td>
<td class="nump">$ 11,714,595<span></span>
</td>
<td class="nump">$ 7,898,975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_WeightedAverageNumberOfBasicSharesOutstanding', window );">Weighted average shares, basic</a></td>
<td class="nump">33,935,570<span></span>
</td>
<td class="nump">28,662,885<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Dilutive effect of stock options, warrants and RSUs</a></td>
<td class="nump">775,906<span></span>
</td>
<td class="nump">1,339,844<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Shares used to compute diluted earnings per share</a></td>
<td class="nump">34,711,476<span></span>
</td>
<td class="nump">30,002,729<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_EarningsBasicPerShare', window );">Basic earnings per share</a></td>
<td class="nump">$ 0.35<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted earnings per share</a></td>
<td class="nump">$ 0.34<span></span>
</td>
<td class="nump">$ 0.26<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_EarningsBasicPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Earnings basic per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_EarningsBasicPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_WeightedAverageNumberOfBasicSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average number of basic shares outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_WeightedAverageNumberOfBasicSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021307031272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Details Narrative) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Securities excluded from computation of diluted earnings per share</a></td>
<td class="nump">1,271,304<span></span>
</td>
<td class="nump">2,320,907<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember', window );">Common Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Securities excluded from computation of diluted earnings per share</a></td>
<td class="nump">1,400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember', window );">Warrant [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Securities excluded from computation of diluted earnings per share</a></td>
<td class="nump">456,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306663752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Option Activity (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Options Outstanding, Beginning | shares</a></td>
<td class="nump">1,111,363<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Outstanding, Beginning</a></td>
<td class="nump">$ 2.12<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value Outstanding, Beginning</a></td>
<td class="nump">$ 1.31<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted-average Remaining Contractual Life (years) Outstanding, Beginning</a></td>
<td class="text">6 years 7 months 13 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Number of Options Outstanding, Granted | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Granted</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value Granted</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod', window );">Number of Options Outstanding, Expired | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Expired</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value Expired</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Number of Options Outstanding, Forfeited/Cancelled | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Forfeited/Cancelled</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value Forfeited/Cancelled</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1', window );">Number of Options Outstanding, Exercised | shares</a></td>
<td class="num">(45,456)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Exercised</a></td>
<td class="nump">$ 1.10<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised', window );">Weighted Average Fair Value Exercised</a></td>
<td class="nump">$ 0.51<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Options Outstanding, Ending | shares</a></td>
<td class="nump">1,065,907<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price Outstanding, Ending</a></td>
<td class="nump">$ 2.17<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value Outstanding, Ending</a></td>
<td class="nump">$ 1.35<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm', window );">Weighted-average Remaining Contractual Life (years) Outstanding, Ending</a></td>
<td class="text">6 years 7 months 24 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Options Exercisable Ending | shares</a></td>
<td class="nump">1,049,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Ending</a></td>
<td class="nump">$ 2.05<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable', window );">Weighted Average Fair Value, Exercisable Ending</a></td>
<td class="nump">$ 1.21<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted-average Remaining Contractual Life (years), Exercisable Ending</a></td>
<td class="text">6 years 7 months 17 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options non vested weighted average term.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Net number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options forfeited.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of options vested.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021302595640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Outstanding Restricted Stock Units and Related Activity (Details) - Restricted Stock Units (RSUs) [Member]<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Number of Restricted Stock Units, Outstanding Beginning | shares</a></td>
<td class="nump">1,267,415<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value, Outstanding Beginning | $ / shares</a></td>
<td class="nump">$ 9.94<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of Restricted Stock Units, Granted | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value, Granted | $ / shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Number of Restricted Stock Units, Vested | shares</a></td>
<td class="num">(68,750)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value, Vested | $ / shares</a></td>
<td class="nump">$ 10.23<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Number of Restricted Stock Units, Forfeited/Cancelled | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value, Forfeited/Cancelled | $ / shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Number of Restricted Stock Units, Outstanding Ending | shares</a></td>
<td class="nump">1,198,665<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value, Outstanding Ending | $ / shares</a></td>
<td class="nump">$ 9.92<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306662216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Warrant Activity (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Warrants Outstanding, Beginning | shares</a></td>
<td class="nump">526,281<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Beginning</a></td>
<td class="nump">$ 8.15<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Beginning</a></td>
<td class="nump">$ 4.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning</a></td>
<td class="text">4 years 8 months 12 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted', window );">Number of Warrants Outstanding, Granted | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Granted</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Granted</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations', window );">Number of Warrants Outstanding, Expired | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Expired</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Expired</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures', window );">Number of Warrants Outstanding, Forfeited/Cancelled | shares</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Forfeited/Cancelled</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Forfeited/Cancelled</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised', window );">Number of Warrants Outstanding, Exercised | shares</a></td>
<td class="num">(50,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercised</a></td>
<td class="nump">$ 2.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Exercised</a></td>
<td class="nump">$ 1.22<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Warrants Outstanding, Ending | shares</a></td>
<td class="nump">476,281<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Ending</a></td>
<td class="nump">$ 8.80<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue', window );">Weighted Average Fair Value, Ending</a></td>
<td class="nump">$ 2.82<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted-average Remaining Contractual Life (Years) Outstanding, Ending</a></td>
<td class="text">4 years 9 months 18 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value, exercised.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Share-based compensation arrangement by share-based payment award, non-option, granted in period, weighted average exercise price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average exercise price, beginning.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the non-option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average exercise price, forfeited/cancelled.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to non-options of the plan that expired.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average exercise price, forfeited/cancelled.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average exercise price, granted.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average remaining contractual life (years) outstanding, beginning.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average remaining contractual life (years) outstanding, ending.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value, beginning.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value, forfeited/cancelled.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-option equity instruments exercised by participants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares under non-option equity instrument agreements for which rights to exercise lapsed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares under non-option equity instrument agreements that were cancelled as a result of occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Net number of non-option equity instruments granted to participants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of equity instruments other than options outstanding, including both vested and non-vested instruments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303888280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Recognized Stock-based Compensation Expense (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Total stock-based compensation expense</a></td>
<td class="nump">$ 1,375,097<span></span>
</td>
<td class="nump">$ 1,513,012<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Share-Based Payment Arrangement, Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Total stock-based compensation expense</a></td>
<td class="nump">40,874<span></span>
</td>
<td class="nump">76,672<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Total stock-based compensation expense</a></td>
<td class="nump">1,334,223<span></span>
</td>
<td class="nump">1,396,440<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember', window );">Share-Based Payment Arrangement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Total stock-based compensation expense</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 39,900<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_StockCompensationPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306757592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ClassOfWarrantExercisable', window );">Warrants exercisable</a></td>
<td class="nump">20,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Warrants to purchase a common stock</a></td>
<td class="nump">456,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember', window );">Warrant [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate intrinsic value of options outstanding</a></td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=CODX_StockOptionsMember', window );">Stock Options [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Intrinsic value of options value exercised</a></td>
<td class="nump">300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate intrinsic value of options outstanding</a></td>
<td class="nump">$ 4,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares', window );">Unvested options</a></td>
<td class="nump">16,666<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized stock-based compensation</a></td>
<td class="nump">$ 37,241<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Unrecognized stock-based compensation recognition period</a></td>
<td class="text">2 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue', window );">Intrinsic value of warrants exercised</a></td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized stock-based compensation</a></td>
<td class="nump">$ 10,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Unrecognized stock-based compensation recognition period</a></td>
<td class="text">2 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock [Member] | Third Parties [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices', window );">Number of shares issued for services</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,290<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=CODX_TwoThousandFifteenLongTermIncentivePlanMember', window );">2015 Long Term Incentive Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Aggregate number of common shares reserved</a></td>
<td class="nump">6,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of common shares availalble for issuance</a></td>
<td class="nump">2,095,266<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ClassOfWarrantExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Class of warrant exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ClassOfWarrantExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of warrants exercised.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate number of common shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesIssuedForServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_WarrantMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=CODX_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=CODX_StockOptionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=CODX_ThirdPartiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=CODX_ThirdPartiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=CODX_TwoThousandFifteenLongTermIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=CODX_TwoThousandFifteenLongTermIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306688664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense benefit</a></td>
<td class="nump">$ 1,386,087<span></span>
</td>
<td class="nump">$ 1,985,640<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="nump">10.60%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Effective federal statutory tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021302591688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Transactions (Details Narrative) - Exclusive License Agreement [Member] - Dr. Brent Satterfield [Member] - USD ($)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 30, 2017</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedRoyaltiesCurrent', window );">Accrued royalties</a></td>
<td class="nump">$ 700,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRoyalties', window );">Payment for royalties per month</a></td>
<td class="nump">$ 10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DueToRelatedPartiesCurrentAndNoncurrent', window );">Due to related party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 120,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedRoyaltiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for royalties. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedRoyaltiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DueToRelatedPartiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of obligations due all related parties.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(C))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.17)<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(3),(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 850<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DueToRelatedPartiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRoyalties">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid for royalties during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRoyalties</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=CODX_ExclusiveLicenseAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=CODX_ExclusiveLicenseAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=CODX_DrBrentSatterfieldMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_TitleOfIndividualAxis=CODX_DrBrentSatterfieldMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306812744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Lease Expense (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease costs</a></td>
<td class="nump">$ 86,588<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease costs</a></td>
<td class="nump">76,080<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total lease costs</a></td>
<td class="nump">$ 162,668<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term lease cost, excluding expense for lease with term of one month or less.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021302544984">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Schedule of Maturities on Company Lease Liabilities (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">2022 (remainder)</a></td>
<td class="nump">$ 221,350<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2023</a></td>
<td class="nump">303,059<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2024</a></td>
<td class="nump">50,774<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2025</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2026</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour', window );">Thereafter</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">575,183<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">16,212<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present value of operating lease liabilities</a></td>
<td class="nump">558,971<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Less: current portion</a></td>
<td class="nump">283,299<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term portion</a></td>
<td class="nump">$ 275,672<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Lessee operating lease liability payments due after year four.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021307129880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule of Other Information Related to Operating Lease (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Cash paid for operating leases included in operating cash flows</a></td>
<td class="nump">$ 154,882<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Remaining lease term of operating leases</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Discount rate of operating leases</a></td>
<td class="nump">3.10%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021303950984">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Schedule of Future Minimum Lease Payments (Details)<br></strong></div></th>
<th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_CODX_DisclosureLeasesAbstract', window );"><strong>Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear', window );">2022</a></td>
<td class="nump">$ 293,595<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent', window );">2023</a></td>
<td class="nump">303,059<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears', window );">2024</a></td>
<td class="nump">50,774<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">$ 647,428<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_CODX_DisclosureLeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">CODX_DisclosureLeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>CODX_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406913&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI https://asc.fasb.org/extlink&amp;oid=123403562&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406913&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI https://asc.fasb.org/extlink&amp;oid=123403562&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406913&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI https://asc.fasb.org/extlink&amp;oid=123403562&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the remainder of the fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.22.1</span><table class="report" border="0" cellspacing="2" id="idm140021306568696">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Share Repurchase Program (Details Narrative)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Mar. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Stock repurchase program authorized amount</a></td>
<td class="nump">$ 30.0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>form10-q_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:CODX="http://codiagnostics.com/20220331"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="codx-20220331.xsd" xlink:type="simple"/>
    <context id="From2022-01-01to2022-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-05-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <instant>2022-05-12</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-012021-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2020-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_srt_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_srt_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:ThreeCustomersTogetherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:ThreeCustomersTogetherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:TwoCustomersTogetherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-12-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">CODX:TwoCustomersTogetherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-02</instant>
        </period>
    </context>
    <context id="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">CODX:AdvancedConceptionsIncAndIdahoMolecularIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-30</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">CODX:AdvancedConceptionsIncAndIdahoMolecularIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_InProcessResearchAndDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="From2021-01-012021-12-31_us-gaap_InProcessResearchAndDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-012021-12-31_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_MeasurementInputSharePriceMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputSharePriceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_MeasurementInputSharePriceMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputSharePriceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_custom_MeasurementInputStrikePriceMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">CODX:MeasurementInputStrikePriceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_custom_MeasurementInputStrikePriceMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">CODX:MeasurementInputStrikePriceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_MeasurementInputPriceVolatilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputPriceVolatilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_MeasurementInputPriceVolatilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputPriceVolatilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_MeasurementInputRiskFreeInterestRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputRiskFreeInterestRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_MeasurementInputRiskFreeInterestRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputRiskFreeInterestRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_srt_AmericasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_srt_AmericasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_RestOfWorldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_custom_RestOfWorldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">CODX:RestOfWorldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_WarrantMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">CODX:TwoThousandFifteenLongTermIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_custom_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_custom_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">CODX:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_us-gaap_WarrantMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:ThirdPartiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:ThirdPartiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="From2022-01-012022-03-31_us-gaap_StockCompensationPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="From2021-01-012021-03-31_us-gaap_StockCompensationPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-01-30</instant>
        </period>
    </context>
    <context id="From2017-01-012017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-01-30</endDate>
        </period>
    </context>
    <context id="AsOf2022-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="AsOf2021-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001692415</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">CODX:DrBrentSatterfieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">CODX:ExclusiveLicenseAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <unit id="Sqft">
        <measure>utr:acre</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="From2022-01-01to2022-03-31">0001692415</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2022-01-01to2022-03-31">false</dei:AmendmentFlag>
    <dei:DocumentFiscalPeriodFocus contextRef="From2022-01-01to2022-03-31">Q1</dei:DocumentFiscalPeriodFocus>
    <dei:CurrentFiscalYearEndDate contextRef="From2022-01-01to2022-03-31">--12-31</dei:CurrentFiscalYearEndDate>
    <us-gaap:MarketableSecuritiesCurrent
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0053"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0075"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0105"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0113"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0129"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0140"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0141"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0146"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0147"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0233"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:GainOnRemeasurementOfAcquisitionContingencies
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0236"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:GainOnRemeasurementOfAcquisitionContingencies
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0287"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:NoncashLeaseExpense
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0290"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0296"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:PaymentsToAcquireInterestInJointVentures
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0337"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:InterestPaidNet
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0364"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:InterestPaidNet
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0365"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0367"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0368"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0374"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="From2021-01-012021-03-31"
      id="xdx2ixbrl0377"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0379"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0387"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember"
      id="xdx2ixbrl0390"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueOther
      contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0395"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0403"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember"
      id="xdx2ixbrl0406"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-012022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0411"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      id="xdx2ixbrl0412"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember"
      id="xdx2ixbrl0413"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0417"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0425"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0433"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember"
      id="xdx2ixbrl0436"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0441"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember"
      id="xdx2ixbrl0444"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0449"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember"
      id="xdx2ixbrl0450"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember"
      id="xdx2ixbrl0451"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-03-31_us-gaap_ConvertiblePreferredStockMember_us-gaap_PreferredStockMember"
      id="xdx2ixbrl0455"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="From2022-01-012022-03-31_srt_MinimumMember"
      id="xdx2ixbrl0496">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember"
      id="xdx2ixbrl0563"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember"
      id="xdx2ixbrl0585"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember"
      id="xdx2ixbrl0593"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2021-12-31"
      id="xdx2ixbrl0599"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0608"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0609"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0613"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0614"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0618"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0619"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:MarketableSecurities
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0623"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:MarketableSecurities
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      id="xdx2ixbrl0625"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0628"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      id="xdx2ixbrl0630"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0633"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0634"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0638"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0639"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel1Member"
      id="xdx2ixbrl0643"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      id="xdx2ixbrl0644"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:ContractWithCustomerLiability
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0704"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0752"
      unitRef="Shares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0754"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0756"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0758"
      unitRef="Shares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0760"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0762"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0764"
      unitRef="Shares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0766"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0768"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      id="xdx2ixbrl0808"
      unitRef="Shares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      id="xdx2ixbrl0810"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      id="xdx2ixbrl0816"
      unitRef="Shares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      id="xdx2ixbrl0818"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0838"
      unitRef="Shares"
      xsi:nil="true"/>
    <CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0840"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0842"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0844"
      unitRef="Shares"
      xsi:nil="true"/>
    <CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0846"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0848"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0850"
      unitRef="Shares"
      xsi:nil="true"/>
    <CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0852"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      id="xdx2ixbrl0854"
      unitRef="USDPShares"
      xsi:nil="true"/>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2022-01-012022-03-31_us-gaap_StockCompensationPlanMember"
      id="xdx2ixbrl0892"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0936"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0938"
      unitRef="USD"
      xsi:nil="true"/>
    <CODX:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour
      contextRef="AsOf2022-03-31"
      id="xdx2ixbrl0940"
      unitRef="USD"
      xsi:nil="true"/>
    <dei:DocumentType contextRef="From2022-01-01to2022-03-31">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport contextRef="From2022-01-01to2022-03-31">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate contextRef="From2022-01-01to2022-03-31">2022-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentFiscalYearFocus contextRef="From2022-01-01to2022-03-31">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentTransitionReport contextRef="From2022-01-01to2022-03-31">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="From2022-01-01to2022-03-31">001-38148</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="From2022-01-01to2022-03-31">CO-DIAGNOSTICS, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2022-01-01to2022-03-31">UT</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="From2022-01-01to2022-03-31">46-2609396</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2022-01-01to2022-03-31">2401 S. Foothill Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2 contextRef="From2022-01-01to2022-03-31">Suite D</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown contextRef="From2022-01-01to2022-03-31">Salt Lake City</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2022-01-01to2022-03-31">UT</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2022-01-01to2022-03-31">84109</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2022-01-01to2022-03-31">(801)</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2022-01-01to2022-03-31">438-1036</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="From2022-01-01to2022-03-31">Common     Stock</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2022-01-01to2022-03-31">CODX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2022-01-01to2022-03-31">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus contextRef="From2022-01-01to2022-03-31">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="From2022-01-01to2022-03-31">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="From2022-01-01to2022-03-31">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="From2022-01-01to2022-03-31">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="From2022-01-01to2022-03-31">true</dei:EntityEmergingGrowthCompany>
    <dei:EntityExTransitionPeriod contextRef="From2022-01-01to2022-03-31">false</dei:EntityExTransitionPeriod>
    <dei:EntityShellCompany contextRef="From2022-01-01to2022-03-31">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding contextRef="AsOf2022-05-12" decimals="INF" unitRef="Shares">33987736</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">97421739</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">88607234</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:MarketableSecuritiesCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1255266</us-gaap:MarketableSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">21662403</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">20839182</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">4901057</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">2004169</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">1278598</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">2338444</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:NotesAndLoansReceivableNetCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">75000</us-gaap:NotesAndLoansReceivableNetCurrent>
    <us-gaap:NotesAndLoansReceivableNetCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">75000</us-gaap:NotesAndLoansReceivableNetCurrent>
    <us-gaap:AssetsCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">125338797</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">115119295</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">2252853</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1933216</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">604837</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">14808411</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">14706818</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">27088333</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">27195000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:RealEstateInvestmentsJointVentures contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">983614</us-gaap:RealEstateInvestmentsJointVentures>
    <us-gaap:RealEstateInvestmentsJointVentures contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1004953</us-gaap:RealEstateInvestmentsJointVentures>
    <us-gaap:AccountsReceivableNetNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">75000</us-gaap:AccountsReceivableNetNoncurrent>
    <us-gaap:AccountsReceivableNetNoncurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">75000</us-gaap:AccountsReceivableNetNoncurrent>
    <us-gaap:Assets contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">171151845</us-gaap:Assets>
    <us-gaap:Assets contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">160034282</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">1215049</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">607506</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">2613218</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">3859652</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">283299</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">4065537</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">5767304</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:TaxesPayableCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">4843592</us-gaap:TaxesPayableCurrent>
    <us-gaap:TaxesPayableCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">2213088</us-gaap:TaxesPayableCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">150000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">13020695</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">12597550</us-gaap:LiabilitiesCurrent>
    <CODX:TaxesPayableNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">1284745</CODX:TaxesPayableNoncurrent>
    <CODX:TaxesPayableNoncurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1067853</CODX:TaxesPayableNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">5868728</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">7228444</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">275672</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">2987214</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">4665337</us-gaap:AssetAcquisitionContingentConsiderationLiabilityNoncurrent>
    <us-gaap:LiabilitiesNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">10416359</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">12961634</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">23437054</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">25559184</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">33984068</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">33984068</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">33819862</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">33819862</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">33984</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">33820</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">81796933</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">80271999</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">65883874</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">54169279</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">147714791</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">134475098</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">171151845</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">160034282</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">22699044</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">20024769</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfRevenue
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3281951</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">3272565</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">19417093</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">16752204</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">2652148</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1197546</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">2922195</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">2935689</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3771327</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">2217063</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">247264</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">67005</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OperatingExpenses
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">9592934</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">6417303</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">9824159</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">10334901</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestIncomeOther
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">11393</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">14657</us-gaap:InterestIncomeOther>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-93421</us-gaap:GainLossOnDispositionOfAssets1>
    <CODX:GainOnRemeasurementOfAcquisitionContingencies
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3379890</CODX:GainOnRemeasurementOfAcquisitionContingencies>
    <CODX:LossOnEquityMethodInvestmentInJointVenture
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-21339</CODX:LossOnEquityMethodInvestmentInJointVenture>
    <CODX:LossOnEquityMethodInvestmentInJointVenture
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-464943</CODX:LossOnEquityMethodInvestmentInJointVenture>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3276523</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-450286</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">13100682</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">9884615</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1386087</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1985640</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">11714595</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">7898975</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.35</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="USDPShares">0.28</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.34</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="USDPShares">0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">33935570</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">28662885</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">34711476</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">30002729</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">11714595</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">7898975</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">247264</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">67005</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:ShareBasedCompensation
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1375097</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1513012</us-gaap:ShareBasedCompensation>
    <CODX:GainOnRemeasurementOfAcquisitionContingencies
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3379890</CODX:GainOnRemeasurementOfAcquisitionContingencies>
    <CODX:NoncashLeaseExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">8762</CODX:NoncashLeaseExpense>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-21339</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-464943</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-93421</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-1359716</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">302399</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">47862</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">79700</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">871083</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">59994</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-1042932</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">114473</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3088944</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-1797581</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-150000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-146516</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">2745803</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1128438</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-641604</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-661115</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">7805838</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">12269955</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">396600</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">139558</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1255266</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">2032802</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <CODX:PaymentsToAcquireInterestInJointVentures
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">-500000</CODX:PaymentsToAcquireInterestInJointVentures>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">858666</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">2393244</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <CODX:ProceedsFromExerciseOfOptionsAndWarrants
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">150001</CODX:ProceedsFromExerciseOfOptionsAndWarrants>
    <CODX:ProceedsFromExerciseOfOptionsAndWarrants
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">148981</CODX:ProceedsFromExerciseOfOptionsAndWarrants>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">150001</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">148981</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">8814505</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">14812180</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">88607234</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="AsOf2020-12-31" decimals="0" unitRef="USD">42976713</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">97421739</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="AsOf2021-03-31" decimals="0" unitRef="USD">57788893</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <CODX:NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">192056</CODX:NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">681327</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:SharesOutstanding
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">33819862</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">33820</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">80271999</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">54169279</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">134475098</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">45456</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">45</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">49956</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">50001</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">50000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:StockIssuedDuringPeriodValueOther
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">50</us-gaap:StockIssuedDuringPeriodValueOther>
    <us-gaap:StockIssuedDuringPeriodValueOther
      contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">99950</us-gaap:StockIssuedDuringPeriodValueOther>
    <us-gaap:StockIssuedDuringPeriodValueOther
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">100000</us-gaap:StockIssuedDuringPeriodValueOther>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">68750</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">69</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2022-01-012022-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">1375028</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1375097</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-012022-03-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">11714595</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">11714595</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="AsOf2022-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">33984068</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">33984</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">81796933</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2022-03-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">65883874</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">147714791</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">28558033</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">28558</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">49157236</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">17510715</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="AsOf2020-12-31" decimals="0" unitRef="USD">66696509</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">65891</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">66</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">148914</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">148980</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">73040</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">42</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">1512970</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1513012</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensationGross>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">7898975</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">7898975</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="AsOf2021-03-31_us-gaap_CommonStockMember"
      decimals="INF"
      unitRef="Shares">28696964</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-03-31_us-gaap_CommonStockMember"
      decimals="0"
      unitRef="USD">28666</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-03-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      unitRef="USD">50819120</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-03-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      unitRef="USD">25409690</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="AsOf2021-03-31" decimals="0" unitRef="USD">76257476</us-gaap:StockholdersEquity>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80F_eus-gaap--BusinessDescriptionAndBasisOfPresentationTextBlock_zz9XBp7tea75" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
1 &#x2013; &lt;span id="xdx_822_zaRgwhQKhTU6"&gt;Overview and Basis of Presentation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Description
of Business&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 27.35pt"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Co-Diagnostics,
Inc., a Utah corporation (the &#x201c;Company&#x201d;, &#x201c;Co-Dx&#x201d; or &#x201c;CODX&#x201d;), develops, manufactures and sells
reagents used for diagnostic tests that function via the detection and/or analysis of nucleic acid molecules (DNA or RNA), including
robust and innovative molecular tools for detection of infectious diseases, liquid biopsy for cancer screening, and agricultural applications.
In connection with the sale of our tests we may sell diagnostic equipment from other manufacturers as self-contained lab systems (which
we refer to as the &#x201c;MDx Device&#x201d;). We are also developing a unique, groundbreaking portable PCR testing platform (the &#x201c;Co-Dx
PCR home testing platform&#x201d;) designed to bring affordable, reliable gold-standard polymerase chain reaction (&#x201c;PCR&#x201d;)
to patients in point-of-care and even at-home settings.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Unaudited
Consolidated Financial Statements&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
accompanying unaudited consolidated financial statements of the Company have been prepared in accordance with accounting principles generally
accepted in the United States of America for interim financial information and with the instructions to Form 10-Q as they are prescribed
for smaller reporting companies and emerging growth companies. Accordingly, they do not include all the information and footnotes required
by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of management,
all adjustments (consisting of normal recurring accruals) considered necessary to make the financial statements not misleading have been
included. Operating results for the three months ended March 31, 2022 are not necessarily indicative of the results that may be expected
for the year ending December 31, 2022. These statements should be read in conjunction with the Company&#x2019;s audited financial statements
and related notes for the year ended December 31, 2021, included in the Company&#x2019;s Annual Report on Form 10-K filed on March 24,
2022.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Use
of Estimates&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
preparation of financial statements in conformity with generally accepted accounting principles requires management to make estimates
and assumptions that affect the amounts reported in the financial statements and the accompanying notes. Such estimates include receivables
and other long-lived assets, legal and regulatory contingencies, income taxes, share based arrangements, and others. These estimates
and assumptions are based on management&#x2019;s best estimates and judgments. Actual amounts and results could differ from those estimates.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80F_eus-gaap--SignificantAccountingPoliciesTextBlock_zB6FigEwh2B4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
2 &#x2013; &lt;span id="xdx_82A_zJfeACbnJRze"&gt;Summary of Significant Accounting Policies&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_843_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zgP1fzlAOOTe" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Cash
and Cash Equivalents&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Cash
and cash equivalents consist of cash on hand, money market funds and highly liquid investments with an original maturity date of 90 days
or less from the date of purchase. The fair value of cash equivalents approximated their carrying value as of March 31, 2022 and December
31, 2021. The Company has its cash and cash equivalents with a large creditworthy financial institution and the balance exceeded federally
insured limits. The Company has not experienced any losses in such accounts, and management believes the Company is not exposed to any
significant credit risk on cash and cash equivalents.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_845_eus-gaap--MarketableSecuritiesPolicy_zB1GZqFRT1wb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Marketable
Investment Securities&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company&#x2019;s marketable investment securities are comprised of investments in certificates of deposit. The Company determines the
appropriate classification of its marketable investment securities at the time of purchase and reevaluates such designation at each balance
sheet date. The Company has classified and accounted for its marketable investment securities as available-for-sale securities as the
Company may sell these securities at any time for use in its current operations or for other purposes, even prior to maturity. As a result,
the Company classifies its marketable investment securities, including securities with stated maturities beyond twelve months, within
current assets in the consolidated balance sheets. Any unrealized gains or losses are immaterial.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zyTPsu5XMaJ8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Accounts
Receivable&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Trade
accounts receivable are recorded at the invoiced amount (net of allowance) and do not bear interest. The Company maintains an allowance
for doubtful accounts for amounts the Company does not expect to collect. In establishing the required allowance, management considers
historical losses, current market condition, customers&#x2019; financial condition, the age of receivables, and current payment patterns.
Account balances are written off against the allowance once the receivable is deemed uncollectible. Recoveries of trade receivables previously
written off are recorded when collected. At March 31, 2022, total accounts receivable was $&lt;span id="xdx_905_eus-gaap--AccountsReceivableGrossCurrent_iI_c20220331_zxP07cEI8Oki" title="Accounts receivable"&gt;22,379,861&lt;/span&gt; with an allowance for uncollectable
accounts of $&lt;span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20220331_zC5TNQyfd03a" title="Doubtful accounts"&gt;717,458&lt;/span&gt; resulting in a net amount of $&lt;span id="xdx_902_eus-gaap--AccountsReceivableNetCurrent_iI_c20220331_zPrkPnLS3Pv5" title="Accounts receivable, net"&gt;21,662,403&lt;/span&gt;. At December 31, 2021, total accounts receivable was $&lt;span id="xdx_909_eus-gaap--AccountsReceivableGrossCurrent_iI_c20211231_zaPHySI4oaB1"&gt;21,508,779&lt;/span&gt; with an
allowance for uncollectable accounts of $&lt;span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20211231_zxShRG1Rqs5e"&gt;669,597&lt;/span&gt; resulting in a net amount of $&lt;span id="xdx_906_eus-gaap--AccountsReceivableNetCurrent_iI_c20211231_zHw3ELPKGTrc"&gt;20,839,182&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_844_eus-gaap--EquityMethodInvestmentsPolicy_z5B1vrwVJLQ1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Equity-Method
Investments&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Our
equity method investments are initially recorded at cost and are included in other long-term assets in the accompanying consolidated
balance sheet. We adjust the carrying value of our investment based on our share of the earnings or losses in the periods which they
are reported by the investee until the carrying amount is zero. The earnings or losses are included in other income (expense) in the
accompanying consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_843_eus-gaap--InventoryPolicyTextBlock_zIoOuJSf0Oxb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Inventory&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Inventory
is stated at the lower of cost or net-realizable value. Inventory cost is determined on a first-in first-out basis that approximates
average cost in accordance with ASC 330-10-30-12. At March 31, 2022, the Company had $&lt;span id="xdx_904_eus-gaap--InventoryNet_iI_c20220331_zWeIZTfEDPwc" title="Inventory"&gt;4,901,057&lt;/span&gt; in inventory, of which $&lt;span id="xdx_904_eus-gaap--InventoryFinishedGoods_iI_c20220331_zrIBb3uaUXMb" title="Inventory finished goods"&gt;4,119,549&lt;/span&gt; was
finished goods and $&lt;span id="xdx_909_eus-gaap--InventoryRawMaterials_iI_c20220331_zQYNiHkaRDw6" title="Inventory raw materials"&gt;781,508&lt;/span&gt; was raw materials. At December 31, 2021, the Company had $&lt;span id="xdx_900_eus-gaap--InventoryNet_iI_c20211231_z55GydraidKi"&gt;2,004,169&lt;/span&gt; in inventory, of which $&lt;span id="xdx_90A_eus-gaap--InventoryFinishedGoods_iI_c20211231_z3p9z2hYbej"&gt;983,088&lt;/span&gt; was finished
goods and $&lt;span id="xdx_903_eus-gaap--InventoryRawMaterials_iI_c20211231_zwVFypuKCfp4"&gt;1,021,081&lt;/span&gt; was raw materials. The Company establishes reserves to reduce slow-moving, obsolete, or unusable inventories to
their estimated useful or scrap values.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_845_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zfvh6Drr6V6g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Property
and Equipment&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Property
and equipment are stated at cost less accumulated depreciation and amortization. Depreciation is provided using the straight-line method
over the estimated useful lives of the property, generally from &lt;span id="xdx_90B_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dxL_c20220101__20220331__srt--RangeAxis__srt--MinimumMember_z9D5FsdDpQ15" title="::XDX::P3Y"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0496"&gt;three&lt;/span&gt;&lt;/span&gt; to &lt;span id="xdx_90E_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dc_c20220101__20220331__srt--RangeAxis__srt--MaximumMember_zK8pvEATGOl7" title="Estimated useful life of property"&gt;five years&lt;/span&gt;. Repairs and maintenance costs are expensed as incurred
except when such repairs significantly add to the useful life or productive capacity of the asset, in which case the repairs are capitalized.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company reviews its long-lived assets, including property and equipment, for impairment whenever an event or change in facts and circumstances
indicates that their carrying amounts may not be recoverable. Recoverability of these assets is measured by comparing the carrying amount
to the estimated undiscounted future cash flows expected to be generated. If the carrying amount exceeds the undiscounted cash flows,
the assets are determined to be impaired and an impairment charge is recognized as the amount by which the carrying amount exceeds fair
value.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_840_eus-gaap--BusinessCombinationsPolicy_z7LzhubAB0Sf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Business
Combinations&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;We
estimate the fair value of assets acquired and liabilities assumed in a business combination. Goodwill as of the acquisition date is
measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities
assumed. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets.
Management&#x2019;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and
unpredictable, and as a result, actual results may differ from estimates.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_845_eus-gaap--LesseeLeasesPolicyTextBlock_zC983qpkCyib" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Leases&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
described in &#x201c;Recently Adopted Accounting Standards&#x201d; below, the Company adopted ASC 842, Leases (&#x201c;ASC 842&#x201d;) effective
January 1, 2022. Under ASC 842, the Company determines if an arrangement is or contains a lease at inception by assessing whether the
arrangement contains an identified asset and whether it has the right to control the identified asset. Right-of-use (ROU) assets represent
the Company&#x2019;s right to use an underlying asset for the lease term and lease liabilities represent the Company&#x2019;s obligation
to make lease payments arising from the lease. Lease liabilities are recognized at the lease commencement date based on the present value
of future lease payments over the lease term. ROU assets are based on the measurement of the lease liability and also include any lease
payments made prior to or on lease commencement and exclude lease incentives and initial direct costs incurred, as applicable.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
the implicit rate in the Company&#x2019;s leases is generally unknown, the Company uses its incremental borrowing rate based on the information
available at the lease commencement date in determining the present value of future lease payments. The Company considers its credit
risk, term of the lease, total lease payments and adjusts for the impacts of collateral, as necessary, when calculating its incremental
borrowing rates. The Company evaluates renewal options at lease inception and on an ongoing basis and includes renewal options that it
is reasonably certain to exercise in its expected lease terms when classifying leases and measuring lease liabilities. Lease costs for
the Company&#x2019;s operating leases are recognized on a straight-line basis within operating expenses and cost of revenue over the reasonably
assured lease term.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has elected to not separate lease and non-lease components for leases of office space and, as a result, accounts for any lease
and non-lease components for office space as a single lease component, to the extent they are fixed. Non-lease components that are not
fixed are expensed as incurred as variable lease payments. The Company&#x2019;s office leases typically include non-lease components such
as common-area maintenance costs. The Company has also elected to not apply the recognition requirement to any leases within its existing
classes of assets with a term of 12 months or less.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zAtkVYfTVgP3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Revenue
Recognition&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company generates revenue from product sales and license sales. The Company recognizes revenue when all of the following criteria are
satisfied: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or
services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction
price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations; and
(v) recognition of revenue when, or as the Company satisfies each performance obligation.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company constrains revenue by giving consideration to factors that could otherwise lead to a probable reversal of revenue. The Company
records any payments received from customers prior to the Company fulfilling its performance obligation(s) as deferred revenue.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_84D_eus-gaap--RevenueFromContractWithCustomerPolicyTextBlock_zcppXrJSBXXd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Deferred
Revenue&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Deferred
revenue primarily consists of payments received from customers prior to the Company fulfilling its performance obligation of providing
the product. When this occurs, the Company records a contract liability as deferred revenue. Deferred revenue is recognized as revenue
as the related performance obligations are satisfied.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_841_eus-gaap--ResearchAndDevelopmentExpensePolicy_zzsm7sYzTWsa" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Research
and Development&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Research
and development costs are expensed when incurred. For the three months ended March 31, 2022, the Company expensed $&lt;span id="xdx_905_eus-gaap--ResearchAndDevelopmentExpense_c20220101__20220331_zoT4Gpan3zig" title="Research and development"&gt;3,771,327&lt;/span&gt; of research
and development costs, respectively. For the three months ended March 31, 2021, the Company expensed $&lt;span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20210101__20210331_zxyNCpkq2ayl"&gt;2,217,063&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_847_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zLD9KSnNIb4d" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock-based
Compensation&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has granted stock-based awards, including restricted stock, stock options, stock warrants and restricted stock units (&#x201c;RSUs&#x201d;),
to its employees, certain consultants and members of its board of directors. The Company records stock-based compensation based on the
grant date fair value of the awards and recognizes the fair value of those awards as expense using the straight-line method over the
requisite service period of the award. The Company estimates the grant date fair value of stock options using the Black-Scholes option-pricing
model. When an award is forfeited prior to the vesting date, the Company recognizes an adjustment for the previously recognized expense
in the period of the forfeiture.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_84D_eus-gaap--IncomeTaxPolicyTextBlock_zEKwmtpEkMmk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Income
Taxes&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company accounts for income taxes in accordance with the liability method of accounting for income taxes. Under this method, deferred
income tax assets and deferred income tax liabilities represent the tax effect of temporary differences between financial reporting and
tax reporting measured at enacted tax rates in effect for the year in which the differences are expected to reverse. The Company recognizes
only the impact of tax positions that, based on their technical merits, are more likely than not to be sustained upon an audit by the
taxing authority.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Valuation
allowances are provided when it is more-likely-than-not that some or all of the deferred income tax assets may not be realized. In assessing
the need for a valuation allowance, the Company has considered its historical levels of income, expectations of future taxable income
and ongoing tax planning strategies.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Developing
the provision for income taxes, including the effective tax rate and analysis of potential tax exposure items, if any, requires significant
judgment and expertise in federal and state income tax laws, regulations and strategies, including the determination of deferred income
tax assets and liabilities and any estimated valuation allowances deemed necessary to value deferred income tax assets. Judgments and
tax strategies are subject to audit by various taxing authorities. While the Company believes it has no significant uncertain income
tax positions in the consolidated financial statements, adverse determinations by these taxing authorities could have a material adverse
effect on the consolidated financial positions, result of operations, or cash flows.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_847_eus-gaap--EarningsPerSharePolicyTextBlock_ziD63g3a2Ksk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Net
Income per Share&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Basic
net income or loss per common share is computed by dividing net income or loss applicable to common shareholders by the weighted average
number of shares outstanding during each period.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Diluted
net income or loss per share is computed by dividing net income or loss attributable to common stockholders by the weighted-average number
of shares of common stock outstanding during the period increased by common shares that could be issued upon conversion or exercise of
other outstanding securities to the extent those additional common shares would be dilutive. The dilutive effect of potentially dilutive
securities is reflected in diluted net income or loss per share by application of the treasury stock method. During periods when the
Company is in a net loss position, basic net loss per share is the same as diluted net loss per share as the effects of potentially dilutive
securities are anti-dilutive.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_849_eus-gaap--ConcentrationRiskCreditRisk_zWYCWNbSntV8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Concentrations
Risk and Significant Customers&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company had certain customers which are each responsible for generating 10% or more of the total revenue for the three months ended March
31, 2022. Three customers together accounted for approximately &lt;span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zGhPwyoulaY5" title="Concentration risk percentage"&gt;54&lt;/span&gt;% and &lt;span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zaj1LJyqynBe" title="Concentration risk percentage"&gt;57&lt;/span&gt;% of total revenue for the three months ended March 31, 2022
and March 31, 2021, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Two
customers each accounted for more than 10% of accounts receivable at March 31, 2022 and December 31, 2021. These two customers together
accounted for approximately &lt;span id="xdx_906_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_z71rrH0xurDh" title="Concentration risk percentage"&gt;62&lt;/span&gt;% and &lt;span id="xdx_905_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20211231__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_ziYiggZXUXhi" title="Concentration risk percentage"&gt;66&lt;/span&gt;% of accounts receivable at March 31, 2022 and December 31, 2021, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_842_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zyT1QLCRuJac" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Recent
Accounting Pronouncements&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;From
time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) that are adopted
by the Company as of the specified effective date. If not discussed, management believes that the impact of recently issued standards,
which are not yet effective, will not have a material impact on the Company&#x2019;s financial statements upon adoption.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_847_ecustom--RecentlyAdoptedAccountingStandardsPolicyTextBlock_zE3ij2MeBTIj" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Recently
Adopted Accounting Standards&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;In
June 2016, the FASB issued ASU No. 2016-13, Financial Instruments-Credit Losses (Topic 326) (&#x201c;ASU 2016-13&#x201d;), which requires
the measurement and recognition of expected credit losses for certain financial instruments, which includes the Company&#x2019;s accounts
receivable. ASU 2016-13 replaces the existing incurred loss impairment model with an expected loss methodology, which will result in
more timely recognition of credit losses. The Company adopted ASU 2016-13 on January 1, 2022. The adoption did not have an impact on
the Company&#x2019;s financial statements.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;In
February 2016, the FASB issued ASU No. 2016-02, Leases (Topic 842) (&#x201c;ASU 2016-02&#x201d;), which requires a lessee to recognize
most leases on the balance sheet as lease liabilities with corresponding right-of-use assets. The objective of ASU 2016-02 is to increase
transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and disclosing
key information about leasing arrangements. The recognized lease liabilities and lease assets represent the obligation to make payments
and the right to use or control the use of a specified asset for the lease term, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;On
January 1, 2022, the Company adopted Topic 842 using the modified retrospective approach with the effective date as the date of initial
application. Consequently, results for the three months ended March 31, 2022 are presented under Topic 842. No prior period amounts were
adjusted and continue to be reported in accordance with previous lease guidance, ASC Topic 840, Leases. The Company elected the practical
expedients available under the provisions of the new standard, including not reassessing whether expired or existing contracts are or
contain leases; not reassessing the classification of expired or existing leases; and not reassessing the initial direct cost for any
existing leases. Upon adoption, the Company recognized an operating lease liability of $&lt;span id="xdx_90B_eus-gaap--OperatingLeaseLiability_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zrmqbtYG3kd5" title="Operating lease liability"&gt;626,699&lt;/span&gt; and a corresponding operating right-of-use
asset of $&lt;span id="xdx_90F_eus-gaap--OperatingLeaseRightOfUseAsset_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zmvU4EdFzMed" title="Operating right use of asset"&gt;681,327&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_85F_zxmbHXaOSlH7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_843_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zgP1fzlAOOTe" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Cash
and Cash Equivalents&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Cash
and cash equivalents consist of cash on hand, money market funds and highly liquid investments with an original maturity date of 90 days
or less from the date of purchase. The fair value of cash equivalents approximated their carrying value as of March 31, 2022 and December
31, 2021. The Company has its cash and cash equivalents with a large creditworthy financial institution and the balance exceeded federally
insured limits. The Company has not experienced any losses in such accounts, and management believes the Company is not exposed to any
significant credit risk on cash and cash equivalents.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:MarketableSecuritiesPolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_845_eus-gaap--MarketableSecuritiesPolicy_zB1GZqFRT1wb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Marketable
Investment Securities&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company&#x2019;s marketable investment securities are comprised of investments in certificates of deposit. The Company determines the
appropriate classification of its marketable investment securities at the time of purchase and reevaluates such designation at each balance
sheet date. The Company has classified and accounted for its marketable investment securities as available-for-sale securities as the
Company may sell these securities at any time for use in its current operations or for other purposes, even prior to maturity. As a result,
the Company classifies its marketable investment securities, including securities with stated maturities beyond twelve months, within
current assets in the consolidated balance sheets. Any unrealized gains or losses are immaterial.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

</us-gaap:MarketableSecuritiesPolicy>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zyTPsu5XMaJ8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Accounts
Receivable&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Trade
accounts receivable are recorded at the invoiced amount (net of allowance) and do not bear interest. The Company maintains an allowance
for doubtful accounts for amounts the Company does not expect to collect. In establishing the required allowance, management considers
historical losses, current market condition, customers&#x2019; financial condition, the age of receivables, and current payment patterns.
Account balances are written off against the allowance once the receivable is deemed uncollectible. Recoveries of trade receivables previously
written off are recorded when collected. At March 31, 2022, total accounts receivable was $&lt;span id="xdx_905_eus-gaap--AccountsReceivableGrossCurrent_iI_c20220331_zxP07cEI8Oki" title="Accounts receivable"&gt;22,379,861&lt;/span&gt; with an allowance for uncollectable
accounts of $&lt;span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20220331_zC5TNQyfd03a" title="Doubtful accounts"&gt;717,458&lt;/span&gt; resulting in a net amount of $&lt;span id="xdx_902_eus-gaap--AccountsReceivableNetCurrent_iI_c20220331_zPrkPnLS3Pv5" title="Accounts receivable, net"&gt;21,662,403&lt;/span&gt;. At December 31, 2021, total accounts receivable was $&lt;span id="xdx_909_eus-gaap--AccountsReceivableGrossCurrent_iI_c20211231_zaPHySI4oaB1"&gt;21,508,779&lt;/span&gt; with an
allowance for uncollectable accounts of $&lt;span id="xdx_908_eus-gaap--AllowanceForDoubtfulAccountsReceivableCurrent_iI_c20211231_zxShRG1Rqs5e"&gt;669,597&lt;/span&gt; resulting in a net amount of $&lt;span id="xdx_906_eus-gaap--AccountsReceivableNetCurrent_iI_c20211231_zHw3ELPKGTrc"&gt;20,839,182&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:AccountsReceivableGrossCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">22379861</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">717458</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">21662403</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableGrossCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">21508779</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">669597</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">20839182</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:EquityMethodInvestmentsPolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_844_eus-gaap--EquityMethodInvestmentsPolicy_z5B1vrwVJLQ1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Equity-Method
Investments&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Our
equity method investments are initially recorded at cost and are included in other long-term assets in the accompanying consolidated
balance sheet. We adjust the carrying value of our investment based on our share of the earnings or losses in the periods which they
are reported by the investee until the carrying amount is zero. The earnings or losses are included in other income (expense) in the
accompanying consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:EquityMethodInvestmentsPolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_843_eus-gaap--InventoryPolicyTextBlock_zIoOuJSf0Oxb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Inventory&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Inventory
is stated at the lower of cost or net-realizable value. Inventory cost is determined on a first-in first-out basis that approximates
average cost in accordance with ASC 330-10-30-12. At March 31, 2022, the Company had $&lt;span id="xdx_904_eus-gaap--InventoryNet_iI_c20220331_zWeIZTfEDPwc" title="Inventory"&gt;4,901,057&lt;/span&gt; in inventory, of which $&lt;span id="xdx_904_eus-gaap--InventoryFinishedGoods_iI_c20220331_zrIBb3uaUXMb" title="Inventory finished goods"&gt;4,119,549&lt;/span&gt; was
finished goods and $&lt;span id="xdx_909_eus-gaap--InventoryRawMaterials_iI_c20220331_zQYNiHkaRDw6" title="Inventory raw materials"&gt;781,508&lt;/span&gt; was raw materials. At December 31, 2021, the Company had $&lt;span id="xdx_900_eus-gaap--InventoryNet_iI_c20211231_z55GydraidKi"&gt;2,004,169&lt;/span&gt; in inventory, of which $&lt;span id="xdx_90A_eus-gaap--InventoryFinishedGoods_iI_c20211231_z3p9z2hYbej"&gt;983,088&lt;/span&gt; was finished
goods and $&lt;span id="xdx_903_eus-gaap--InventoryRawMaterials_iI_c20211231_zwVFypuKCfp4"&gt;1,021,081&lt;/span&gt; was raw materials. The Company establishes reserves to reduce slow-moving, obsolete, or unusable inventories to
their estimated useful or scrap values.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:InventoryNet contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">4901057</us-gaap:InventoryNet>
    <us-gaap:InventoryFinishedGoods contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">4119549</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryRawMaterials contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">781508</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryNet contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">2004169</us-gaap:InventoryNet>
    <us-gaap:InventoryFinishedGoods contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">983088</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryRawMaterials contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">1021081</us-gaap:InventoryRawMaterials>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_845_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zfvh6Drr6V6g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Property
and Equipment&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Property
and equipment are stated at cost less accumulated depreciation and amortization. Depreciation is provided using the straight-line method
over the estimated useful lives of the property, generally from &lt;span id="xdx_90B_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dxL_c20220101__20220331__srt--RangeAxis__srt--MinimumMember_z9D5FsdDpQ15" title="::XDX::P3Y"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0496"&gt;three&lt;/span&gt;&lt;/span&gt; to &lt;span id="xdx_90E_eus-gaap--PropertyPlantAndEquipmentUsefulLife_dc_c20220101__20220331__srt--RangeAxis__srt--MaximumMember_zK8pvEATGOl7" title="Estimated useful life of property"&gt;five years&lt;/span&gt;. Repairs and maintenance costs are expensed as incurred
except when such repairs significantly add to the useful life or productive capacity of the asset, in which case the repairs are capitalized.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company reviews its long-lived assets, including property and equipment, for impairment whenever an event or change in facts and circumstances
indicates that their carrying amounts may not be recoverable. Recoverability of these assets is measured by comparing the carrying amount
to the estimated undiscounted future cash flows expected to be generated. If the carrying amount exceeds the undiscounted cash flows,
the assets are determined to be impaired and an impairment charge is recognized as the amount by which the carrying amount exceeds fair
value.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="From2022-01-012022-03-31_srt_MaximumMember">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:BusinessCombinationsPolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_840_eus-gaap--BusinessCombinationsPolicy_z7LzhubAB0Sf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Business
Combinations&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;We
estimate the fair value of assets acquired and liabilities assumed in a business combination. Goodwill as of the acquisition date is
measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities
assumed. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets.
Management&#x2019;s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and
unpredictable, and as a result, actual results may differ from estimates.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_845_eus-gaap--LesseeLeasesPolicyTextBlock_zC983qpkCyib" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Leases&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
described in &#x201c;Recently Adopted Accounting Standards&#x201d; below, the Company adopted ASC 842, Leases (&#x201c;ASC 842&#x201d;) effective
January 1, 2022. Under ASC 842, the Company determines if an arrangement is or contains a lease at inception by assessing whether the
arrangement contains an identified asset and whether it has the right to control the identified asset. Right-of-use (ROU) assets represent
the Company&#x2019;s right to use an underlying asset for the lease term and lease liabilities represent the Company&#x2019;s obligation
to make lease payments arising from the lease. Lease liabilities are recognized at the lease commencement date based on the present value
of future lease payments over the lease term. ROU assets are based on the measurement of the lease liability and also include any lease
payments made prior to or on lease commencement and exclude lease incentives and initial direct costs incurred, as applicable.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
the implicit rate in the Company&#x2019;s leases is generally unknown, the Company uses its incremental borrowing rate based on the information
available at the lease commencement date in determining the present value of future lease payments. The Company considers its credit
risk, term of the lease, total lease payments and adjusts for the impacts of collateral, as necessary, when calculating its incremental
borrowing rates. The Company evaluates renewal options at lease inception and on an ongoing basis and includes renewal options that it
is reasonably certain to exercise in its expected lease terms when classifying leases and measuring lease liabilities. Lease costs for
the Company&#x2019;s operating leases are recognized on a straight-line basis within operating expenses and cost of revenue over the reasonably
assured lease term.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has elected to not separate lease and non-lease components for leases of office space and, as a result, accounts for any lease
and non-lease components for office space as a single lease component, to the extent they are fixed. Non-lease components that are not
fixed are expensed as incurred as variable lease payments. The Company&#x2019;s office leases typically include non-lease components such
as common-area maintenance costs. The Company has also elected to not apply the recognition requirement to any leases within its existing
classes of assets with a term of 12 months or less.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zAtkVYfTVgP3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Revenue
Recognition&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company generates revenue from product sales and license sales. The Company recognizes revenue when all of the following criteria are
satisfied: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or
services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction
price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations; and
(v) recognition of revenue when, or as the Company satisfies each performance obligation.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company constrains revenue by giving consideration to factors that could otherwise lead to a probable reversal of revenue. The Company
records any payments received from customers prior to the Company fulfilling its performance obligation(s) as deferred revenue.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:RevenueRecognitionPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_84D_eus-gaap--RevenueFromContractWithCustomerPolicyTextBlock_zcppXrJSBXXd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Deferred
Revenue&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Deferred
revenue primarily consists of payments received from customers prior to the Company fulfilling its performance obligation of providing
the product. When this occurs, the Company records a contract liability as deferred revenue. Deferred revenue is recognized as revenue
as the related performance obligations are satisfied.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_841_eus-gaap--ResearchAndDevelopmentExpensePolicy_zzsm7sYzTWsa" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Research
and Development&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Research
and development costs are expensed when incurred. For the three months ended March 31, 2022, the Company expensed $&lt;span id="xdx_905_eus-gaap--ResearchAndDevelopmentExpense_c20220101__20220331_zoT4Gpan3zig" title="Research and development"&gt;3,771,327&lt;/span&gt; of research
and development costs, respectively. For the three months ended March 31, 2021, the Company expensed $&lt;span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20210101__20210331_zxyNCpkq2ayl"&gt;2,217,063&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">3771327</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">2217063</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_847_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zLD9KSnNIb4d" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock-based
Compensation&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0.35pt; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has granted stock-based awards, including restricted stock, stock options, stock warrants and restricted stock units (&#x201c;RSUs&#x201d;),
to its employees, certain consultants and members of its board of directors. The Company records stock-based compensation based on the
grant date fair value of the awards and recognizes the fair value of those awards as expense using the straight-line method over the
requisite service period of the award. The Company estimates the grant date fair value of stock options using the Black-Scholes option-pricing
model. When an award is forfeited prior to the vesting date, the Company recognizes an adjustment for the previously recognized expense
in the period of the forfeiture.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_84D_eus-gaap--IncomeTaxPolicyTextBlock_zEKwmtpEkMmk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Income
Taxes&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company accounts for income taxes in accordance with the liability method of accounting for income taxes. Under this method, deferred
income tax assets and deferred income tax liabilities represent the tax effect of temporary differences between financial reporting and
tax reporting measured at enacted tax rates in effect for the year in which the differences are expected to reverse. The Company recognizes
only the impact of tax positions that, based on their technical merits, are more likely than not to be sustained upon an audit by the
taxing authority.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Valuation
allowances are provided when it is more-likely-than-not that some or all of the deferred income tax assets may not be realized. In assessing
the need for a valuation allowance, the Company has considered its historical levels of income, expectations of future taxable income
and ongoing tax planning strategies.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Developing
the provision for income taxes, including the effective tax rate and analysis of potential tax exposure items, if any, requires significant
judgment and expertise in federal and state income tax laws, regulations and strategies, including the determination of deferred income
tax assets and liabilities and any estimated valuation allowances deemed necessary to value deferred income tax assets. Judgments and
tax strategies are subject to audit by various taxing authorities. While the Company believes it has no significant uncertain income
tax positions in the consolidated financial statements, adverse determinations by these taxing authorities could have a material adverse
effect on the consolidated financial positions, result of operations, or cash flows.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_847_eus-gaap--EarningsPerSharePolicyTextBlock_ziD63g3a2Ksk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Net
Income per Share&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Basic
net income or loss per common share is computed by dividing net income or loss applicable to common shareholders by the weighted average
number of shares outstanding during each period.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Diluted
net income or loss per share is computed by dividing net income or loss attributable to common stockholders by the weighted-average number
of shares of common stock outstanding during the period increased by common shares that could be issued upon conversion or exercise of
other outstanding securities to the extent those additional common shares would be dilutive. The dilutive effect of potentially dilutive
securities is reflected in diluted net income or loss per share by application of the treasury stock method. During periods when the
Company is in a net loss position, basic net loss per share is the same as diluted net loss per share as the effects of potentially dilutive
securities are anti-dilutive.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_849_eus-gaap--ConcentrationRiskCreditRisk_zWYCWNbSntV8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Concentrations
Risk and Significant Customers&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company had certain customers which are each responsible for generating 10% or more of the total revenue for the three months ended March
31, 2022. Three customers together accounted for approximately &lt;span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zGhPwyoulaY5" title="Concentration risk percentage"&gt;54&lt;/span&gt;% and &lt;span id="xdx_900_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--MajorCustomersAxis__custom--ThreeCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_zaj1LJyqynBe" title="Concentration risk percentage"&gt;57&lt;/span&gt;% of total revenue for the three months ended March 31, 2022
and March 31, 2021, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Two
customers each accounted for more than 10% of accounts receivable at March 31, 2022 and December 31, 2021. These two customers together
accounted for approximately &lt;span id="xdx_906_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_z71rrH0xurDh" title="Concentration risk percentage"&gt;62&lt;/span&gt;% and &lt;span id="xdx_905_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20211231__srt--MajorCustomersAxis__custom--TwoCustomersTogetherMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--AccountsReceivableMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--CustomerConcentrationRiskMember_ziYiggZXUXhi" title="Concentration risk percentage"&gt;66&lt;/span&gt;% of accounts receivable at March 31, 2022 and December 31, 2021, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-012022-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.54</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-012021-03-31_custom_ThreeCustomersTogetherMember_us-gaap_SalesRevenueNetMember_us-gaap_CustomerConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.57</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-012022-03-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.62</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-012021-12-31_custom_TwoCustomersTogetherMember_us-gaap_AccountsReceivableMember_us-gaap_CustomerConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.66</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_842_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zyT1QLCRuJac" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Recent
Accounting Pronouncements&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;From
time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) that are adopted
by the Company as of the specified effective date. If not discussed, management believes that the impact of recently issued standards,
which are not yet effective, will not have a material impact on the Company&#x2019;s financial statements upon adoption.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <CODX:RecentlyAdoptedAccountingStandardsPolicyTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_847_ecustom--RecentlyAdoptedAccountingStandardsPolicyTextBlock_zE3ij2MeBTIj" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Recently
Adopted Accounting Standards&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;In
June 2016, the FASB issued ASU No. 2016-13, Financial Instruments-Credit Losses (Topic 326) (&#x201c;ASU 2016-13&#x201d;), which requires
the measurement and recognition of expected credit losses for certain financial instruments, which includes the Company&#x2019;s accounts
receivable. ASU 2016-13 replaces the existing incurred loss impairment model with an expected loss methodology, which will result in
more timely recognition of credit losses. The Company adopted ASU 2016-13 on January 1, 2022. The adoption did not have an impact on
the Company&#x2019;s financial statements.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;In
February 2016, the FASB issued ASU No. 2016-02, Leases (Topic 842) (&#x201c;ASU 2016-02&#x201d;), which requires a lessee to recognize
most leases on the balance sheet as lease liabilities with corresponding right-of-use assets. The objective of ASU 2016-02 is to increase
transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and disclosing
key information about leasing arrangements. The recognized lease liabilities and lease assets represent the obligation to make payments
and the right to use or control the use of a specified asset for the lease term, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;On
January 1, 2022, the Company adopted Topic 842 using the modified retrospective approach with the effective date as the date of initial
application. Consequently, results for the three months ended March 31, 2022 are presented under Topic 842. No prior period amounts were
adjusted and continue to be reported in accordance with previous lease guidance, ASC Topic 840, Leases. The Company elected the practical
expedients available under the provisions of the new standard, including not reassessing whether expired or existing contracts are or
contain leases; not reassessing the classification of expired or existing leases; and not reassessing the initial direct cost for any
existing leases. Upon adoption, the Company recognized an operating lease liability of $&lt;span id="xdx_90B_eus-gaap--OperatingLeaseLiability_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zrmqbtYG3kd5" title="Operating lease liability"&gt;626,699&lt;/span&gt; and a corresponding operating right-of-use
asset of $&lt;span id="xdx_90F_eus-gaap--OperatingLeaseRightOfUseAsset_iI_c20220102__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201602Member_zmvU4EdFzMed" title="Operating right use of asset"&gt;681,327&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

</CODX:RecentlyAdoptedAccountingStandardsPolicyTextBlock>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member"
      decimals="0"
      unitRef="USD">626699</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2022-01-02_us-gaap_AccountingStandardsUpdate201602Member"
      decimals="0"
      unitRef="USD">681327</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_802_eus-gaap--BusinessCombinationDisclosureTextBlock_zezkZV4G19X7" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
3 &#x2013; &lt;span id="xdx_82A_znBmDVcai0xk"&gt;Business Combinations&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;On
December 31, 2021, the Company completed its acquisition of Advanced Conceptions, Inc. (&#x201c;ACI&#x201d;) and Idaho Molecular Inc. (&#x201c;IdMo&#x201d;),
which were related entities developing, with the Company, an at-home/point-of-care medical diagnostic device. Upon the completion of
the acquisition, all outstanding ACI and Idaho Molecular common stock was exchanged for approximately &lt;span id="xdx_90C_ecustom--StockIssuedDuringPeriodSharesExchanged_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zah1btN5jz1j" title="Number of shares exchanged"&gt;3.2&lt;/span&gt; million shares of the Company&#x2019;s
common stock and contingent consideration that includes up to approximately &lt;span id="xdx_904_ecustom--StockIssuedDuringPeriodSharesContingentConsideration_pn5n6_c20211230__20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_z2wzDq5nLask" title="Number of shares on contingent consideration"&gt;1.4&lt;/span&gt; million shares and approximately &lt;span id="xdx_90F_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zXgz8Km99jFd" title="Warrants to purchase shares of common stock"&gt;456,000&lt;/span&gt; warrants to
purchase shares of the Company&#x2019;s common stock. The contingent consideration is based on the achievement of certain milestones,
which include regulatory approval for identified products, as well as production and net revenue targets. Upon the completion of the
acquisition, both ACI and IdMo became &lt;span id="xdx_903_eus-gaap--EquityMethodInvestmentOwnershipPercentage_iI_pid_dp_uPure_c20211231__us-gaap--BusinessAcquisitionAxis__custom--AdvancedConceptionsIncAndIdahoMolecularIncMember_zvJ2mq5EbCUl" title="Equity method investment ownership percentage"&gt;100&lt;/span&gt;% wholly-owned subsidiaries of the Company.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:BusinessCombinationDisclosureTextBlock>
    <CODX:StockIssuedDuringPeriodSharesExchanged
      contextRef="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember"
      decimals="-5"
      unitRef="Shares">3200000</CODX:StockIssuedDuringPeriodSharesExchanged>
    <CODX:StockIssuedDuringPeriodSharesContingentConsideration
      contextRef="From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember"
      decimals="-5"
      unitRef="Shares">1400000</CODX:StockIssuedDuringPeriodSharesContingentConsideration>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights
      contextRef="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember"
      decimals="INF"
      unitRef="Shares">456000</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <us-gaap:EquityMethodInvestmentOwnershipPercentage
      contextRef="AsOf2021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember"
      decimals="INF"
      unitRef="Pure">1</us-gaap:EquityMethodInvestmentOwnershipPercentage>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_808_eus-gaap--GoodwillAndIntangibleAssetsDisclosureTextBlock_zh0gcNIU0vek" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
4 &#x2013; &lt;span id="xdx_827_zt0ipSyKNAE"&gt;Goodwill and Intangible Assets&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Goodwill&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Goodwill
represents the excess of purchase price and related costs over the value assigned to net tangible and identifiable intangible assets
acquired in business combinations. The following table presents the changes in the carrying amount of goodwill for the three months ended
March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89E_eus-gaap--ScheduleOfGoodwillTextBlock_zNKvrRjW2GS9" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span id="xdx_8B1_zChWuxf0sQvi" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Schedule
of Goodwill&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 80%"&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Balance as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;&lt;span id="xdx_906_eus-gaap--Goodwill_iS_c20220101__20220331_zoVCUAo7egf3" title="Goodwil - beginning"&gt;14,706,818&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Measurement period adjustments&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;span id="xdx_90B_eus-gaap--GoodwillTranslationAndPurchaseAccountingAdjustments_c20220101__20220331_zHygSGmTLytk" title="Measurement period adjustments"&gt;101,593&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Balance as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span id="xdx_90E_eus-gaap--Goodwill_iE_c20220101__20220331_zRLiEXrabRhe" title="Goodwill - Ending"&gt;14,808,411&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A8_zIF5JEsi2yfj" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Intangible
Assets, Net&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89F_eus-gaap--ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_zJa2P4Y8T406" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table presents details of the Company&#x2019;s intangible assets, excluding goodwill:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BF_zgE3NboDLkA8" style="display: none"&gt;Schedule
of Intangible Assets, Net&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td id="xdx_F57_zBFu4bsO6F3f" style="text-align: center; font-weight: bold"&gt;Weighted-Average&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Gross&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Net&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; font-weight: bold"&gt;Useful Life (1)&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Accumulated&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(in Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amortization&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 38%; text-align: left"&gt;In-process research and development&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; width: 12%"&gt;&lt;span id="xdx_90C_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zDKmPNrA2Mje" title="Estimated useful lives in years, term"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98C_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zkmfhabgZoP3" style="width: 12%; text-align: right" title="Intangible assets, gross"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_z6Z76aPq5Hpj" style="width: 12%; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0563"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zvokvOusumng" style="width: 12%; text-align: right" title="Intangible assets, net"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Non-competition agreements&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&lt;span id="xdx_90D_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zzdfILwGsPYc" title="Estimated useful lives in years"&gt;2.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_zohu0FcEjMYf" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z4Ei9KS0LzZ8" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"&gt;(106,667&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z53hK2brfdw2" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net"&gt;987,333&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left"&gt;Total intangible assets&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98D_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331_zkagNvevVauj" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331_zXLIfDm0qjnj" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"&gt;(106,667&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98B_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331_zNQux8I6Hn0e" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net"&gt;27,088,333&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; font-weight: bold"&gt;Weighted-Average&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Gross&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Net&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td id="xdx_F5F_zELYSdNrVfW1" style="text-align: center; font-weight: bold"&gt;Useful Life (1)&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Accumulated&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(in Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amortization&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 38%; text-align: left"&gt;In-process research and development&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; width: 12%"&gt;&lt;span id="xdx_903_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zJx29r9pxK9g" title="Estimated useful lives in years, term"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98B_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, gross"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zPXKJERjBEXd" style="width: 12%; text-align: right" title="Less accumulated amortization"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0585"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, net"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Non-competition agreements&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&lt;span id="xdx_901_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zpya74ClTkIe" title="Estimated useful lives in years"&gt;2.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z74rMJDRk40h" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0593"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left"&gt;Total intangible assets&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_982_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20211231_zCJzpe3CXbJa" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231_zsnEOWSQhXQb" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0599"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98D_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_c20211231_zHPEkGXDPGm8" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p style="margin: 0"&gt;&#160;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"/&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 6pt; width: 100%"&gt;&lt;tr style="vertical-align: top; text-align: justify"&gt;
&lt;td id="xdx_F04_zWP69sqgYFp1" style="width: 15pt; text-align: right"&gt;(1)&lt;/td&gt;&lt;td style="width: 5pt"/&gt;&lt;td id="xdx_F1D_zBPHoGCJYju4" style="text-align: justify"&gt;Based on weighted-average useful life established as of the acquisition date.&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;



&lt;p id="xdx_8A1_zUOYHPzJgJ2e" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89E_eus-gaap--ScheduleOfGoodwillTextBlock_zNKvrRjW2GS9" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span id="xdx_8B1_zChWuxf0sQvi" style="display: none; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Schedule
of Goodwill&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 80%"&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Balance as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;&lt;span id="xdx_906_eus-gaap--Goodwill_iS_c20220101__20220331_zoVCUAo7egf3" title="Goodwil - beginning"&gt;14,706,818&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Measurement period adjustments&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;span id="xdx_90B_eus-gaap--GoodwillTranslationAndPurchaseAccountingAdjustments_c20220101__20220331_zHygSGmTLytk" title="Measurement period adjustments"&gt;101,593&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Balance as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span id="xdx_90E_eus-gaap--Goodwill_iE_c20220101__20220331_zRLiEXrabRhe" title="Goodwill - Ending"&gt;14,808,411&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">14706818</us-gaap:Goodwill>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">101593</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:Goodwill contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">14808411</us-gaap:Goodwill>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89F_eus-gaap--ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_zJa2P4Y8T406" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table presents details of the Company&#x2019;s intangible assets, excluding goodwill:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BF_zgE3NboDLkA8" style="display: none"&gt;Schedule
of Intangible Assets, Net&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td id="xdx_F57_zBFu4bsO6F3f" style="text-align: center; font-weight: bold"&gt;Weighted-Average&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Gross&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Net&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; font-weight: bold"&gt;Useful Life (1)&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Accumulated&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(in Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amortization&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 38%; text-align: left"&gt;In-process research and development&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; width: 12%"&gt;&lt;span id="xdx_90C_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zDKmPNrA2Mje" title="Estimated useful lives in years, term"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98C_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zkmfhabgZoP3" style="width: 12%; text-align: right" title="Intangible assets, gross"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_z6Z76aPq5Hpj" style="width: 12%; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0563"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zvokvOusumng" style="width: 12%; text-align: right" title="Intangible assets, net"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Non-competition agreements&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&lt;span id="xdx_90D_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20220101__20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zzdfILwGsPYc" title="Estimated useful lives in years"&gt;2.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_zohu0FcEjMYf" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z4Ei9KS0LzZ8" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"&gt;(106,667&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z53hK2brfdw2" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net"&gt;987,333&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left"&gt;Total intangible assets&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98D_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20220331_zkagNvevVauj" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20220331_zXLIfDm0qjnj" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"&gt;(106,667&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98B_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_pp0p0_c20220331_zNQux8I6Hn0e" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net"&gt;27,088,333&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; font-weight: bold"&gt;Weighted-Average&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Gross&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Net&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td id="xdx_F5F_zELYSdNrVfW1" style="text-align: center; font-weight: bold"&gt;Useful Life (1)&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Accumulated&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="text-align: center; font-weight: bold"&gt;Carrying&lt;/td&gt;&lt;td style="text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(in Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amortization&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Amount&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 38%; text-align: left"&gt;In-process research and development&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: center; width: 12%"&gt;&lt;span id="xdx_903_ecustom--IndefiniteLivedIntangibleAssetUsefulLife_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_fKDEp_zJx29r9pxK9g" title="Estimated useful lives in years, term"&gt;Indefinite&lt;/span&gt;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98B_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, gross"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_zPXKJERjBEXd" style="width: 12%; text-align: right" title="Less accumulated amortization"&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0585"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--InProcessResearchAndDevelopmentMember_pp0p0" style="width: 12%; text-align: right" title="Intangible assets, net"&gt;26,101,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Non-competition agreements&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&lt;span id="xdx_901_eus-gaap--FiniteLivedIntangibleAssetUsefulLife_dtY_c20210101__20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_fKDEp_zpya74ClTkIe" title="Estimated useful lives in years"&gt;2.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--FiniteLivedIntangibleAssetsGross_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, gross"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_z74rMJDRk40h" style="border-bottom: Black 1pt solid; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0593"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--IntangibleAssetsNetExcludingGoodwill_c20211231__us-gaap--FiniteLivedIntangibleAssetsByMajorClassAxis__us-gaap--NoncompeteAgreementsMember_pp0p0" style="border-bottom: Black 1pt solid; text-align: right" title="Intangible assets, net"&gt;1,094,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 2.5pt; text-align: left"&gt;Total intangible assets&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_982_eus-gaap--FiniteLivedIntangibleAssetsGross_iI_pp0p0_c20211231_zCJzpe3CXbJa" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, gross"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--FiniteLivedIntangibleAssetsAccumulatedAmortization_iNI_pp0p0_di_c20211231_zsnEOWSQhXQb" style="border-bottom: Black 2.5pt double; text-align: right" title="Less accumulated amortization"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0599"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98D_eus-gaap--IntangibleAssetsNetExcludingGoodwill_iI_c20211231_zHPEkGXDPGm8" style="border-bottom: Black 2.5pt double; text-align: right" title="Intangible assets, net"&gt;27,195,000&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p style="margin: 0"&gt;&#160;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt"/&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0; margin-bottom: 6pt; width: 100%"&gt;&lt;tr style="vertical-align: top; text-align: justify"&gt;
&lt;td id="xdx_F04_zWP69sqgYFp1" style="width: 15pt; text-align: right"&gt;(1)&lt;/td&gt;&lt;td style="width: 5pt"/&gt;&lt;td id="xdx_F1D_zBPHoGCJYju4" style="text-align: justify"&gt;Based on weighted-average useful life established as of the acquisition date.&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;



</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <CODX:IndefiniteLivedIntangibleAssetUsefulLife
      contextRef="From2022-01-012022-03-31_us-gaap_InProcessResearchAndDevelopmentMember"
      id="Fact000559">Indefinite</CODX:IndefiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="0"
      unitRef="USD">26101000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2022-03-31_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="0"
      unitRef="USD">26101000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="From2022-01-012022-03-31_us-gaap_NoncompeteAgreementsMember"
      id="Fact000567">P2Y8M12D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember"
      decimals="0"
      unitRef="USD">1094000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember"
      decimals="0"
      unitRef="USD">106667</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2022-03-31_us-gaap_NoncompeteAgreementsMember"
      decimals="0"
      unitRef="USD">987333</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">27195000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">106667</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">27088333</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <CODX:IndefiniteLivedIntangibleAssetUsefulLife
      contextRef="From2021-01-012021-12-31_us-gaap_InProcessResearchAndDevelopmentMember"
      id="Fact000581">Indefinite</CODX:IndefiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="0"
      unitRef="USD">26101000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31_us-gaap_InProcessResearchAndDevelopmentMember"
      decimals="0"
      unitRef="USD">26101000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="From2021-01-012021-12-31_us-gaap_NoncompeteAgreementsMember"
      id="Fact000589">P2Y8M12D</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember"
      decimals="0"
      unitRef="USD">1094000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31_us-gaap_NoncompeteAgreementsMember"
      decimals="0"
      unitRef="USD">1094000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">27195000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">27195000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80E_eus-gaap--FairValueDisclosuresTextBlock_ziMe1JWkYAM1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
5 &#x2013; &lt;span id="xdx_821_zWcDPj3icLLa"&gt;Fair Value Measurements&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company measures and records certain financial assets at fair value on a recurring basis. Fair value is based on the price that would
be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement
date.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company&#x2019;s financial instruments that are measured at fair value on a recurring basis consist of money market funds. The following
three levels of inputs are used to measure the fair value of financial instruments:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Level
1: Quoted market prices in active markets for identical assets or liabilities.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Level
2: Observable market-based inputs or unobservable inputs that are corroborated by market data.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Level
3: Unobservable inputs that are not corroborated by market data.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.25in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89D_eus-gaap--FairValueAssetsMeasuredOnRecurringBasisTextBlock_z1TUnPHxPCpf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes the assets measured at fair value on a recurring basis as of March 31, 2022, and December 31, 2021, by level
within the fair value hierarchy:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B3_zn0KXPJ85aM5" style="display: none"&gt;Schedule of Fair Value Assets and Liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_492_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zGoKCJzpIDg1" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49B_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zzmeErf3pD07" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_490_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_zO0RfpKIVpef" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_494_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zKMZBJbGrbO4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Liabilities:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; width: 36%; text-align: left"&gt;Contingent consideration - common stock&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0608"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0609"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;6,013,939&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;6,013,939&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40A_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Contingent consideration - warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0613"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0614"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,038,812&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,038,812&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total liabilities measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0618"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0619"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49B_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zAmUwVrBVhw" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_497_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zYpB9BBZWTFb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49A_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_z4YHECf1mR8a" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_496_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zPwwxwJxes51" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Assets:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--MarketableSecurities_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; width: 36%; text-align: left"&gt;Marketable securities (certificates of deposit)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0623"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0625"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--AssetsFairValueDisclosure_iI_pp0p0_zgIfNXbnLOh2" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total assets measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0628"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0630"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Liabilities:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0_zgr84fZvOWrl" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;Contingent consideration - common stock&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0633"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0634"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;8,684,669&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;8,684,669&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_408_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0_z0x9aLWcjeha" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Contingent consideration - warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0638"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0639"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,747,972&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,747,972&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0_zO5KsAJZbvZd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total liabilities measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0643"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0644"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A2_zdVDT85boOPb" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company&#x2019;s financial instruments that are measured at fair value on a recurring basis consist of certificates of deposit.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89F_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_zmbwcccQ4PC3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
changes for Level 3 items measured at fair value on a recurring basis are as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 60pt"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;span id="xdx_8B9_zyJTykKEdo26" style="display: none"&gt;Schedule of Changes in Fair Value Measurement&lt;/span&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_49B_20220101__20220331_zg7E92CjoGm9" style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iS_pp0p0_zvJD5kRCGtD1" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Fair value as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_ecustom--ContingentConsideredIssuedForBusinessAcquisitions_i_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Change in fair value of contingent consideration issued for business acquisitions&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;(3,379,890&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iE_zrChinXAcgF1" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Fair value as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AD_z5p9XuLxjwv4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_890_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_zwZSxdEWWSng" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
fair value of the contingent consideration is based on the fair value of the contingent consideration-common stock and contingent consideration-warrants.
The fair value of the contingent consideration-common stock is equal to the probability-adjusted value of the Company&#x2019;s common
stock as of March 31, 2022. The fair value of the contingent consideration-warrants is equal to the probability adjusted value of a call
option with terms consistent with the terms of the warrants as of March 31, 2022. Prior to the probability adjustments, the warrants
were valued based on the following inputs:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BD_zPgps9VUSTF9" style="display: none"&gt;Schedule of Contingent Consideration Common Stock and Warrants&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;&lt;p style="font: 10pt/107% Times New Roman, Times, Serif; margin: 0"&gt;&lt;b&gt;March
                                            31, 2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%"&gt;Stock price&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_za3eAJEpvUg4" style="width: 16%; text-align: right" title="Warrants measurement input"&gt;6.18&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_zz2npUQSdEdd" style="width: 16%; text-align: right"&gt;8.93&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Strike price&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zTHjStxkGZ7d" style="text-align: right" title="Warrants measurement input"&gt;9.13&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zeQyIHyXFiD7" style="text-align: right"&gt;9.13&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Volatility&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zCTHGvL6FAhl" style="text-align: right" title="Warrants measurement input"&gt;77.50&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zgzZ47AMeA9" style="text-align: right"&gt;80.00&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Risk-free rate&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zakllESA7O3k" style="text-align: right" title="Warrants measurement input"&gt;2.40&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zd39BWd7xZZi" style="text-align: right"&gt;1.30&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Expected term&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span id="xdx_905_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20220331_zvUDBAY5x1e6" title="Expected term"&gt;4.8&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span id="xdx_90A_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20211231_zxHQ9Ir6Xws1" title="Expected term"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AB_zJouvqIAqTWh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89D_eus-gaap--FairValueAssetsMeasuredOnRecurringBasisTextBlock_z1TUnPHxPCpf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes the assets measured at fair value on a recurring basis as of March 31, 2022, and December 31, 2021, by level
within the fair value hierarchy:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B3_zn0KXPJ85aM5" style="display: none"&gt;Schedule of Fair Value Assets and Liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_492_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zGoKCJzpIDg1" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49B_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zzmeErf3pD07" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_490_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_zO0RfpKIVpef" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_494_20220331__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zKMZBJbGrbO4" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Liabilities:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; width: 36%; text-align: left"&gt;Contingent consideration - common stock&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0608"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0609"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;6,013,939&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 12%; text-align: right"&gt;6,013,939&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40A_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Contingent consideration - warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0613"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0614"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,038,812&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,038,812&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total liabilities measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0618"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0619"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49B_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel1Member_zAmUwVrBVhw" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_497_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel2Member_zYpB9BBZWTFb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49A_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember__us-gaap--FairValueByFairValueHierarchyLevelAxis__us-gaap--FairValueInputsLevel3Member_z4YHECf1mR8a" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_496_20211231__us-gaap--FairValueByMeasurementFrequencyAxis__us-gaap--FairValueMeasurementsRecurringMember_zPwwxwJxes51" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 1)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 2)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;(Level 3)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Assets:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--MarketableSecurities_iI_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; width: 36%; text-align: left"&gt;Marketable securities (certificates of deposit)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;&#160;&#160;&#160;&#160;&lt;span style="-sec-ix-hidden: xdx2ixbrl0623"&gt;&#160;&lt;/span&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0625"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; width: 12%; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--AssetsFairValueDisclosure_iI_pp0p0_zgIfNXbnLOh2" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total assets measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0628"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0630"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,255,266&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Liabilities:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_ecustom--FairValueOfContingentConsiderationToCommonStock_iI_pp0p0_zgr84fZvOWrl" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;Contingent consideration - common stock&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0633"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0634"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;8,684,669&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;8,684,669&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_408_ecustom--FairValueOfContingentConsiderationToWarrants_iI_pp0p0_z0x9aLWcjeha" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Contingent consideration - warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0638"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0639"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,747,972&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,747,972&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LiabilitiesFairValueDisclosure_iI_pp0p0_zO5KsAJZbvZd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total liabilities measured at fair value&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0643"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0644"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">6013939</CODX:FairValueOfContingentConsiderationToCommonStock>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">6013939</CODX:FairValueOfContingentConsiderationToCommonStock>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">1038812</CODX:FairValueOfContingentConsiderationToWarrants>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">1038812</CODX:FairValueOfContingentConsiderationToWarrants>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">7052751</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">7052751</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:MarketableSecurities
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      decimals="0"
      unitRef="USD">1255266</us-gaap:MarketableSecurities>
    <us-gaap:MarketableSecurities
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">1255266</us-gaap:MarketableSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel2Member"
      decimals="0"
      unitRef="USD">1255266</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">1255266</us-gaap:AssetsFairValueDisclosure>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">8684669</CODX:FairValueOfContingentConsiderationToCommonStock>
    <CODX:FairValueOfContingentConsiderationToCommonStock
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">8684669</CODX:FairValueOfContingentConsiderationToCommonStock>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">1747972</CODX:FairValueOfContingentConsiderationToWarrants>
    <CODX:FairValueOfContingentConsiderationToWarrants
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">1747972</CODX:FairValueOfContingentConsiderationToWarrants>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember_us-gaap_FairValueInputsLevel3Member"
      decimals="0"
      unitRef="USD">10432641</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:LiabilitiesFairValueDisclosure
      contextRef="AsOf2021-12-31_us-gaap_FairValueMeasurementsRecurringMember"
      decimals="0"
      unitRef="USD">10432641</us-gaap:LiabilitiesFairValueDisclosure>
    <us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89F_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock_zmbwcccQ4PC3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
changes for Level 3 items measured at fair value on a recurring basis are as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 60pt"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;span id="xdx_8B9_zyJTykKEdo26" style="display: none"&gt;Schedule of Changes in Fair Value Measurement&lt;/span&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_49B_20220101__20220331_zg7E92CjoGm9" style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iS_pp0p0_zvJD5kRCGtD1" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Fair value as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;10,432,641&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_ecustom--ContingentConsideredIssuedForBusinessAcquisitions_i_pp0p0" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;Change in fair value of contingent consideration issued for business acquisitions&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;(3,379,890&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--BusinessCombinationContingentConsiderationLiabilityNoncurrent_iE_zrChinXAcgF1" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Fair value as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;7,052,751&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">10432641</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <CODX:ContingentConsideredIssuedForBusinessAcquisitions
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">-3379890</CODX:ContingentConsideredIssuedForBusinessAcquisitions>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">7052751</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_890_eus-gaap--FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock_zwZSxdEWWSng" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
fair value of the contingent consideration is based on the fair value of the contingent consideration-common stock and contingent consideration-warrants.
The fair value of the contingent consideration-common stock is equal to the probability-adjusted value of the Company&#x2019;s common
stock as of March 31, 2022. The fair value of the contingent consideration-warrants is equal to the probability adjusted value of a call
option with terms consistent with the terms of the warrants as of March 31, 2022. Prior to the probability adjustments, the warrants
were valued based on the following inputs:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BD_zPgps9VUSTF9" style="display: none"&gt;Schedule of Contingent Consideration Common Stock and Warrants&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;&lt;p style="font: 10pt/107% Times New Roman, Times, Serif; margin: 0"&gt;&lt;b&gt;March
                                            31, 2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%"&gt;Stock price&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_za3eAJEpvUg4" style="width: 16%; text-align: right" title="Warrants measurement input"&gt;6.18&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputSharePriceMember_zz2npUQSdEdd" style="width: 16%; text-align: right"&gt;8.93&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Strike price&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zTHjStxkGZ7d" style="text-align: right" title="Warrants measurement input"&gt;9.13&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__custom--MeasurementInputStrikePriceMember_zeQyIHyXFiD7" style="text-align: right"&gt;9.13&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Volatility&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zCTHGvL6FAhl" style="text-align: right" title="Warrants measurement input"&gt;77.50&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputPriceVolatilityMember_zgzZ47AMeA9" style="text-align: right"&gt;80.00&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Risk-free rate&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20220331__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zakllESA7O3k" style="text-align: right" title="Warrants measurement input"&gt;2.40&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--WarrantsAndRightsOutstandingMeasurementInput_iI_pid_uPure_c20211231__us-gaap--MeasurementInputTypeAxis__us-gaap--MeasurementInputRiskFreeInterestRateMember_zd39BWd7xZZi" style="text-align: right"&gt;1.30&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Expected term&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span id="xdx_905_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20220331_zvUDBAY5x1e6" title="Expected term"&gt;4.8&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span id="xdx_90A_eus-gaap--WarrantsAndRightsOutstandingTerm_iI_dtY_c20211231_zxHQ9Ir6Xws1" title="Expected term"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2022-03-31_us-gaap_MeasurementInputSharePriceMember"
      decimals="INF"
      unitRef="Pure">6.18</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2021-12-31_us-gaap_MeasurementInputSharePriceMember"
      decimals="INF"
      unitRef="Pure">8.93</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2022-03-31_custom_MeasurementInputStrikePriceMember"
      decimals="INF"
      unitRef="Pure">9.13</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2021-12-31_custom_MeasurementInputStrikePriceMember"
      decimals="INF"
      unitRef="Pure">9.13</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2022-03-31_us-gaap_MeasurementInputPriceVolatilityMember"
      decimals="INF"
      unitRef="Pure">77.50</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2021-12-31_us-gaap_MeasurementInputPriceVolatilityMember"
      decimals="INF"
      unitRef="Pure">80.00</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2022-03-31_us-gaap_MeasurementInputRiskFreeInterestRateMember"
      decimals="INF"
      unitRef="Pure">2.40</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingMeasurementInput
      contextRef="AsOf2021-12-31_us-gaap_MeasurementInputRiskFreeInterestRateMember"
      decimals="INF"
      unitRef="Pure">1.30</us-gaap:WarrantsAndRightsOutstandingMeasurementInput>
    <us-gaap:WarrantsAndRightsOutstandingTerm contextRef="AsOf2022-03-31">P4Y9M18D</us-gaap:WarrantsAndRightsOutstandingTerm>
    <us-gaap:WarrantsAndRightsOutstandingTerm contextRef="AsOf2021-12-31">P5Y</us-gaap:WarrantsAndRightsOutstandingTerm>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80B_eus-gaap--RevenueFromContractWithCustomerTextBlock_zpqPoGw7nbef" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
6 &#x2013; &lt;span id="xdx_82B_zcoVpJOpGVii"&gt;Revenue&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_891_eus-gaap--ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_zjzpB3Z6a1Vl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table sets forth revenue by geographic area:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B7_zOk31aA4QC46" style="display: none"&gt;Summary of Revenue by Geographic Area&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%; text-align: left"&gt;United States&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember_zO6KdVB6crp3" style="width: 16%; text-align: right" title="Revenue"&gt;14,218,398&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember_zH1raLFWw5ak" style="width: 16%; text-align: right" title="Revenue"&gt;12,493,950&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Rest of World&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zZCwleu1HUqf" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue"&gt;8,480,646&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zQMBfqldHG95" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue"&gt;7,530,819&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; padding-left: 10pt"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331_zNqA66xgGJe2" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue"&gt;22,699,044&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331_zzGdsVCWa1l4" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue"&gt;20,024,769&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Percentage of revenue by area:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zJNqsVftaIP7" style="text-align: right" title="Percentage of revenue"&gt;63&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_z3vDjFJaFwp" style="text-align: right" title="Percentage of revenue"&gt;62&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Rest of World&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zvHtnH8YfXr4" style="text-align: right" title="Percentage of revenue"&gt;37&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zpCmkodyV2Dc" style="text-align: right" title="Percentage of revenue"&gt;38&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A0_zIfegbnW6Uyf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Deferred
Revenue&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89A_eus-gaap--ContractWithCustomerAssetAndLiabilityTableTextBlock_zRNSM86TC98g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Changes
in the Company&#x2019;s deferred revenue balance for the three months ended March 31, 2022 were as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BC_zb02F7FPfdY3" style="display: none"&gt;Schedule of Deferred Revenue&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Balance as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_982_eus-gaap--ContractWithCustomerLiability_iS_c20220101__20220331_zOG7i8rV0ufb" style="width: 18%; text-align: right" title="Deferred revenue, beginning balance"&gt;150,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 1pt; text-align: left"&gt;Revenue recognized included in deferred revenue balance at the beginning of the period&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ContractWithCustomerLiabilityRevenueRecognized_iN_di_c20220101__20220331_zK22NJYy1kc5" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue recognized included in deferred revenue balance at the beginning of the period"&gt;(150,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Balance as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--ContractWithCustomerLiability_iE_c20220101__20220331_zAnWErWeVaAb" style="border-bottom: Black 2.5pt double; text-align: right" title="Deferred revenue, Ending balance"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0704"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AB_zVNoM1I0FPw6" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_891_eus-gaap--ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_zjzpB3Z6a1Vl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table sets forth revenue by geographic area:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B7_zOk31aA4QC46" style="display: none"&gt;Summary of Revenue by Geographic Area&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%; text-align: left"&gt;United States&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember_zO6KdVB6crp3" style="width: 16%; text-align: right" title="Revenue"&gt;14,218,398&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember_zH1raLFWw5ak" style="width: 16%; text-align: right" title="Revenue"&gt;12,493,950&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Rest of World&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zZCwleu1HUqf" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue"&gt;8,480,646&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember_zQMBfqldHG95" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue"&gt;7,530,819&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; padding-left: 10pt"&gt;Total&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20220101__20220331_zNqA66xgGJe2" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue"&gt;22,699,044&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--RevenueFromContractWithCustomerIncludingAssessedTax_c20210101__20210331_zzGdsVCWa1l4" style="border-bottom: Black 2.5pt double; text-align: right" title="Revenue"&gt;20,024,769&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Percentage of revenue by area:&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zJNqsVftaIP7" style="text-align: right" title="Percentage of revenue"&gt;63&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__srt--AmericasMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_z3vDjFJaFwp" style="text-align: right" title="Percentage of revenue"&gt;62&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Rest of World&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20220101__20220331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zvHtnH8YfXr4" style="text-align: right" title="Percentage of revenue"&gt;37&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ConcentrationRiskPercentage1_pid_dp_uPure_c20210101__20210331__srt--StatementGeographicalAxis__custom--RestOfWorldMember__us-gaap--ConcentrationRiskByBenchmarkAxis__us-gaap--SalesRevenueNetMember__us-gaap--ConcentrationRiskByTypeAxis__us-gaap--GeographicConcentrationRiskMember_zpCmkodyV2Dc" style="text-align: right" title="Percentage of revenue"&gt;38&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2022-01-012022-03-31_srt_AmericasMember"
      decimals="0"
      unitRef="USD">14218398</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2021-01-012021-03-31_srt_AmericasMember"
      decimals="0"
      unitRef="USD">12493950</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2022-01-012022-03-31_custom_RestOfWorldMember"
      decimals="0"
      unitRef="USD">8480646</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2021-01-012021-03-31_custom_RestOfWorldMember"
      decimals="0"
      unitRef="USD">7530819</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">22699044</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">20024769</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-012022-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.63</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-012021-03-31_srt_AmericasMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.62</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2022-01-012022-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.37</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-012021-03-31_custom_RestOfWorldMember_us-gaap_SalesRevenueNetMember_us-gaap_GeographicConcentrationRiskMember"
      decimals="INF"
      unitRef="Pure">0.38</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89A_eus-gaap--ContractWithCustomerAssetAndLiabilityTableTextBlock_zRNSM86TC98g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Changes
in the Company&#x2019;s deferred revenue balance for the three months ended March 31, 2022 were as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BC_zb02F7FPfdY3" style="display: none"&gt;Schedule of Deferred Revenue&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%"&gt;Balance as of December 31, 2021&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_982_eus-gaap--ContractWithCustomerLiability_iS_c20220101__20220331_zOG7i8rV0ufb" style="width: 18%; text-align: right" title="Deferred revenue, beginning balance"&gt;150,000&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 1pt; text-align: left"&gt;Revenue recognized included in deferred revenue balance at the beginning of the period&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ContractWithCustomerLiabilityRevenueRecognized_iN_di_c20220101__20220331_zK22NJYy1kc5" style="border-bottom: Black 1pt solid; text-align: right" title="Revenue recognized included in deferred revenue balance at the beginning of the period"&gt;(150,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Balance as of March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--ContractWithCustomerLiability_iE_c20220101__20220331_zAnWErWeVaAb" style="border-bottom: Black 2.5pt double; text-align: right" title="Deferred revenue, Ending balance"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0704"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiability contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">150000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">150000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:EarningsPerShareTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80F_eus-gaap--EarningsPerShareTextBlock_zqzsARI95O1j" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
7 &#x2013; &lt;span id="xdx_82D_zMHulP5k08b2"&gt;Earnings Per Share&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_895_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zIjgl2JqHws8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table reconciles the numerator and the denominator used to calculate basic and diluted earnings per share for three months
ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B9_z6hrEutjv8gc" style="display: none"&gt;Schedule of Basic and Diluted Earnings Per Share&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_491_20220101__20220331_zUpmCzAFxnG6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49C_20210101__20210331_zqoPs1NUpO15" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="font-weight: bold"&gt;Numerator&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_405_eus-gaap--NetIncomeLoss_zMI7jvntCw3g" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 60%; text-align: left"&gt;Net income, as reported&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"&gt;11,714,595&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"&gt;7,898,975&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="font-weight: bold"&gt;Denominator&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40D_ecustom--WeightedAverageNumberOfBasicSharesOutstanding_zCAt5rFLNPri" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Weighted average shares, basic&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;33,935,570&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;28,662,885&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--WeightedAverageNumberDilutedSharesOutstandingAdjustment_zlKviuHvxXe" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Dilutive effect of stock options, warrants and RSUs&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;775,906&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,339,844&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_zeqgFoJIoihh" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Shares used to compute diluted earnings per share&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;34,711,476&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;30,002,729&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_ecustom--EarningsBasicPerShare_pid_zILOrADzfQfl" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Basic earnings per share&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.35&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.28&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--EarningsPerShareDiluted_pid_z5ENeZbAszth" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Diluted earnings per share&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.34&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.26&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A9_zBU4s7DXTxFh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;For
the three months ended March 31, 2022, potentially dilutive securities of &lt;span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331_zaGQ8FbYzGAh" title="Securities excluded from computation of diluted earnings per share"&gt;1,271,304&lt;/span&gt; were excluded from the calculation because their
effect would have been anti-dilutive. For the three months ended March 31, 2021, potentially dilutive securities of &lt;span id="xdx_90D_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20210101__20210331_zzuhUVLMdw6i" title="Securities excluded from computation of diluted earnings per share"&gt;2,320,907&lt;/span&gt; were excluded
from the calculation because their effect would have been anti-dilutive. The computation of diluted earnings per share for the three
months ended March 31, 2022 also excludes the approximately &lt;span id="xdx_902_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_pn5n6_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--CommonStockMember_zeyzTTcNPUS9" title="Securities excluded from computation of diluted earnings per share"&gt;1.4&lt;/span&gt; million shares of common stock and approximately &lt;span id="xdx_906_eus-gaap--AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_c20220101__20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zWt0YFewv1vd" title="Securities excluded from computation of diluted earnings per share"&gt;456,000&lt;/span&gt; warrants to
purchase shares of common stock that are contingent upon the achievement of certain milestones.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_895_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zIjgl2JqHws8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table reconciles the numerator and the denominator used to calculate basic and diluted earnings per share for three months
ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B9_z6hrEutjv8gc" style="display: none"&gt;Schedule of Basic and Diluted Earnings Per Share&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_491_20220101__20220331_zUpmCzAFxnG6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49C_20210101__20210331_zqoPs1NUpO15" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="font-weight: bold"&gt;Numerator&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_405_eus-gaap--NetIncomeLoss_zMI7jvntCw3g" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 60%; text-align: left"&gt;Net income, as reported&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"&gt;11,714,595&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; width: 16%; text-align: right"&gt;7,898,975&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="font-weight: bold"&gt;Denominator&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40D_ecustom--WeightedAverageNumberOfBasicSharesOutstanding_zCAt5rFLNPri" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Weighted average shares, basic&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;33,935,570&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;28,662,885&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--WeightedAverageNumberDilutedSharesOutstandingAdjustment_zlKviuHvxXe" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Dilutive effect of stock options, warrants and RSUs&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;775,906&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;1,339,844&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_zeqgFoJIoihh" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Shares used to compute diluted earnings per share&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;34,711,476&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;30,002,729&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_ecustom--EarningsBasicPerShare_pid_zILOrADzfQfl" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;Basic earnings per share&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.35&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.28&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--EarningsPerShareDiluted_pid_z5ENeZbAszth" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td&gt;Diluted earnings per share&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.34&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;0.26&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">11714595</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">7898975</us-gaap:NetIncomeLoss>
    <CODX:WeightedAverageNumberOfBasicSharesOutstanding
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">33935570</CODX:WeightedAverageNumberOfBasicSharesOutstanding>
    <CODX:WeightedAverageNumberOfBasicSharesOutstanding
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">28662885</CODX:WeightedAverageNumberOfBasicSharesOutstanding>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">775906</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">1339844</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">34711476</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">30002729</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <CODX:EarningsBasicPerShare
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.35</CODX:EarningsBasicPerShare>
    <CODX:EarningsBasicPerShare
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="USDPShares">0.28</CODX:EarningsBasicPerShare>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.34</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="USDPShares">0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">1271304</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-01-012021-03-31"
      decimals="INF"
      unitRef="Shares">2320907</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2022-01-012022-03-31_us-gaap_CommonStockMember"
      decimals="-5"
      unitRef="Shares">1400000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2022-01-012022-03-31_us-gaap_WarrantMember"
      decimals="INF"
      unitRef="Shares">456000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_803_eus-gaap--DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock_ztGLRUjhkhz1" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
8 &#x2013; &lt;span id="xdx_823_zEOuy9NOjafe"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock
Incentive Plans&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Co-Diagnostics, Inc. Amended and Restated 2015 Long Term Incentive Plan (the &#x201c;Incentive Plan&#x201d;) reserves an aggregate of &lt;span id="xdx_90B_eus-gaap--CommonStockCapitalSharesReservedForFutureIssuance_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zpD8EaQDAGt2" title="Aggregate number of common shares reserved"&gt;6,000,000&lt;/span&gt;
shares of common stock issuable upon the grant of awards under the Incentive Plan. The number of awards available for issuance under
the Incentive Plan was &lt;span id="xdx_909_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_iI_c20220331__us-gaap--PlanNameAxis__custom--TwoThousandFifteenLongTermIncentivePlanMember_zuIpJWFska7j" title="Number of common shares availalble for issuance"&gt;2,095,266&lt;/span&gt; at March 31, 2022.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock
Options&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_891_eus-gaap--ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ztKgdy8Bqvh3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes option activity during the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B9_zFj1t5YgHYJ7" style="display: none"&gt;Schedule of Option Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Number of Options&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Exercise Price&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Fair Value&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Remaining Contractual Life (Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 36%"&gt;Outstanding at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iS_c20220101__20220331_zm8ni8HOyp94" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Options Outstanding, Beginning"&gt;1,111,363&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iS_pid_c20220101__20220331_zjFS2oGGdLC" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price Outstanding, Beginning"&gt;2.12&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98C_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331_zAqHrRACGyn1" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value Outstanding, Beginning"&gt;1.31&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_pid_dtY_c20220101__20220331_zjmfQduMY8Jh" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted-average Remaining Contractual Life (years) Outstanding, Beginning"&gt;6.62&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_c20220101__20220331_zFZq5mwhakx6" style="text-align: right" title="Number of Options Outstanding, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0752"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zLJwzTPT313j" style="text-align: right" title="Weighted Average Exercise Price Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0754"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zMNO7zKKMxqh" style="text-align: right" title="Weighted Average Fair Value Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0756"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Expired&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20220101__20220331_z2lnJiwKu0kd" style="text-align: right" title="Number of Options Outstanding, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0758"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zpscqZ4oqLGf" style="text-align: right" title="Weighted Average Exercise Price Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0760"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_c20220101__20220331_ziJTEheYQg9i" style="text-align: right" title="Weighted Average Fair Value Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0762"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_c20220101__20220331_zm9zTDNfUqg1" style="text-align: right" title="Number of Options Outstanding, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0764"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zI60XZcOrfIg" style="text-align: right" title="Weighted Average Exercise Price Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0766"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_zTusk0Q1HwEi" style="text-align: right" title="Weighted Average Fair Value Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0768"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Exercised&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_ecustom--StockIssuedDuringPeriodSharesStockOptionsExercised1_iN_di_c20220101__20220331_zmfWwUWz21fk" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options Outstanding, Exercised"&gt;(45,456&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_pid_c20220101__20220331_zH4PiywzNzl7" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price Exercised"&gt;1.10&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98B_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_iE_pid_c20220101__20220331_zctHiNPIvZE" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value Exercised"&gt;0.51&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Outstanding at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iE_c20220101__20220331_z1G0zrKY3xE6" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Outstanding, Ending"&gt;1,065,907&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zWUT54m7tuGe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price Outstanding, Ending"&gt;2.17&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331_z1CaCrgSNUX5" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value Outstanding, Ending"&gt;1.35&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_905_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_dtY_c20220101__20220331_zHaUED7Uv6C1" title="Weighted-average Remaining Contractual Life (years) Outstanding, Ending"&gt;6.65&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Exercisable at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_iE_c20220101__20220331_ziLdpTMQn0j3" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Exercisable Ending"&gt;1,049,241&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zwUa7Rgtndfk" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Exercisable Ending"&gt;2.05&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_984_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_iE_pid_c20220101__20220331_z1WB4Z83K5md" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Exercisable Ending"&gt;1.21&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_90D_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zNnzpFa7cASa" title="Weighted-average Remaining Contractual Life (years), Exercisable Ending"&gt;6.63&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A3_zRuBH60lvY9g" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
total intrinsic value of options exercised during the three months ended March 31, 2022 was approximately $&lt;span id="xdx_90E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zZoD4nPdZNT" title="Intrinsic value of options value exercised"&gt;0.3&lt;/span&gt; million. The aggregate
intrinsic value of outstanding options at March 31, 2022 was approximately $&lt;span id="xdx_907_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zV1WjMkJrShi" title="Aggregate intrinsic value of outstanding options"&gt;4.5&lt;/span&gt; million.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Stock-based
compensation cost is measured at the grant date based on the fair value of the award granted and recognized as expense over the vesting
period using the straight-line method. The Company uses the Black-Scholes model to value options granted.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
of March 31, 2022, there were &lt;span id="xdx_903_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_iI_pid_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_z2p1NoWfTHW1" title="Unvested options"&gt;16,666&lt;/span&gt; of unvested options and $&lt;span id="xdx_904_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pip0_c20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zcU9HUokbRth" title="Unrecognized stock-based compensation"&gt;37,241&lt;/span&gt; of unrecognized stock-based compensation expense. The unrecognized
stock-based compensation expense is expected to be recognized over &lt;span id="xdx_901_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zUlhK2OM32Il" title="Unrecognized stock-based compensation recognition period"&gt;0.2&lt;/span&gt; years.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Restricted
Stock Units&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_892_eus-gaap--ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_zkR6cdqpf4h" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
grant date fair value of RSUs granted is determined using the closing market price of the Company&#x2019;s common stock on the grant date
with the associated compensation expense amortized over the vesting period of the awards. The following table sets forth the outstanding
RSUs and related activity for the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B1_zCzRWJbV2WC1" style="display: none"&gt;Schedule of Outstanding Restricted Stock Units and Related Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Number of RSUs&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Grant Date Fair Value&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; width: 60%"&gt;Unvested at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iS_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zj0haNKa41L6" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Number of Restricted Stock Units, Outstanding Beginning"&gt;1,267,415&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zPDQwjPVPZQ7" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Beginning"&gt;9.94&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zBvpfwns7NXf" style="text-align: right" title="Number of Restricted Stock Units, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0808"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zbfceDCgQzG1" style="text-align: right" title="Weighted Average Grant Date Fair Value, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0810"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsr2FAUFsY15" style="text-align: right" title="Number of Restricted Stock Units, Vested"&gt;(68,750&lt;/td&gt;&lt;td style="text-align: left"&gt;)&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zdoJlsjmka6f" style="text-align: right" title="Weighted Average Grant Date Fair Value, Vested"&gt;10.23&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zd2CW2RnTX41" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Restricted Stock Units, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0816"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zRdW35RSmsJ5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Grant Date Fair Value, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0818"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Unvested at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iE_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zF15KGf5pLSi" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Restricted Stock Units, Outstanding Ending"&gt;1,198,665&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_z4ziqRB3cBJe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Ending"&gt;9.92&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A8_za2eDRK6cH34" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
of March 31, 2022, there was approximately $&lt;span id="xdx_902_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_iI_pn5n6_c20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zgZJ8XzuxWVg" title="Unrecognized stock-based compensation"&gt;10.3&lt;/span&gt; million of unrecognized stock-based compensation expense related to outstanding RSUs
which is expected to be recognized over a weighted-average period of &lt;span id="xdx_90C_eus-gaap--EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_dtY_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zE8TYnrDazh1" title="Unrecognized stock-based compensation recognition period"&gt;2.1&lt;/span&gt; years.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Warrants&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has issued warrants related to financings, acquisitions and as compensation to third parties for services provided. The Company
estimates the fair value of issued warrants on the date of issuance as determined using a Black-Scholes pricing model. The Company amortizes
the fair value of issued warrants using a vesting schedule based on the terms and conditions of each warrant if granted for services.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_899_eus-gaap--ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_z1wJP62NylF4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes warrant activity during the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BA_zmWowKLiH7td" style="display: none"&gt;Schedule of Warrant Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Number of Warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Exercise Price&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Fair Value&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Remaining Contractual Life (Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 36%"&gt;Outstanding at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iS_c20220101__20220331_zINttDYfthV3" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Warrants Outstanding, Beginning"&gt;526,281&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_iS_c20220101__20220331_zaEjjCFGB8If" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price, Beginning"&gt;8.15&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iS_c20220101__20220331_zAMBLeDQI2xc" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value, Beginning"&gt;4.01&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 12%; text-align: right"&gt;&lt;span id="xdx_901_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zXxfhiYJ8YQj" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_c20220101__20220331_zFTwFSliwhhb" style="text-align: right" title="Number of Warrants Outstanding, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0838"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zOtZnFemB6X9" style="text-align: right" title="Weighted Average Exercise Price, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0840"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_z8woLIlZ5ZZb" style="text-align: right" title="Weighted Average Fair Value, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0842"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Expired&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_iN_di_c20220101__20220331_zwxKLvtGG0Z4" style="text-align: right" title="Number of Warrants Outstanding, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0844"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_z5XhppworVa7" style="text-align: right" title="Weighted Average Exercise Price, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0846"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_c20220101__20220331_zI1ZFD4Jam0g" style="text-align: right" title="Weighted Average Fair Value, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0848"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_c20220101__20220331_z0igDcUrLtCg" style="text-align: right" title="Number of Warrants Outstanding, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0850"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zSDpvx9C9ii6" style="text-align: right" title="Weighted Average Exercise Price, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0852"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_znqvowCE0we1" style="text-align: right" title="Weighted Average Fair Value, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0854"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_iN_di_c20220101__20220331_zUDzI34kvrZi" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Warrants Outstanding, Exercised"&gt;(50,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_c20220101__20220331_zi3iWflCO9Kc" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price, Exercised"&gt;2.00&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zCkH6fj1orj5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value, Exercised"&gt;1.22&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Outstanding at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iE_c20220101__20220331_zUIDeoF7zjq5" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Warrants Outstanding, Ending"&gt;476,281&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_iE_c20220101__20220331_zi0ar9QRWgNe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Ending"&gt;8.80&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iE_c20220101__20220331_zKatffPbVt73" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Ending"&gt;2.82&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_90F_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_dtY_c20220101__20220331_zujqIlxFtNni" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Ending"&gt;4.8&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;


&lt;p id="xdx_8AD_zVsjyVbN7idg" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
intrinsic value of warrants exercised during the three months ended March 31, 2022 and 2021 was approximately $&lt;span id="xdx_905_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20220101__20220331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zAkC7w0Nbmvi" title="Intrinsic value of warrants exercised"&gt;0.3&lt;/span&gt; million and $&lt;span id="xdx_908_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue_pn5n6_c20210101__20210331__us-gaap--AwardTypeAxis__custom--StockOptionsMember_zkeBUQsXknG" title="Intrinsic value of warrants exercised"&gt;0&lt;/span&gt;, respectively.
The aggregate intrinsic value of outstanding warrants at March 31, 2022 was approximately $&lt;span id="xdx_908_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_pn5n6_c20220331__us-gaap--StatementEquityComponentsAxis__us-gaap--WarrantMember_zKHKKGZnifxl" title="Aggregate intrinsic value of options outstanding"&gt;0.1&lt;/span&gt; million.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
total number of warrants exercisable at March 31, 2022 are &lt;span id="xdx_90B_ecustom--ClassOfWarrantExercisable_iI_c20220331_zQ0Gkr3LALMh" title="Warrants exercisable"&gt;20,000&lt;/span&gt;. The ability to exercise the approximately &lt;span id="xdx_90D_eus-gaap--ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_iI_c20220331_zFgoIyvT3tO8" title="Warrants to purchase a common stock"&gt;456,000&lt;/span&gt; warrants issued
in connection with acquisitions in the prior year is contingent upon the achievement of certain development and revenue milestones on
or before January 1, 2027. There was no unrecognized stock-based compensation expense related to warrants.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify; text-indent: 0.5in"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock
Issued for Services&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has issued restricted stock to third parties for services provided. The grant date fair value of the restricted stock granted
is determined using the closing market price of the Company&#x2019;s common stock on the grant date with the associated compensation expense
amortized over the vesting period of the stock awards. The Company issued &lt;span id="xdx_907_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20220101__20220331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zj2SYp8VDwg2" title="Number of shares issued for services"&gt;0&lt;/span&gt; and &lt;span id="xdx_901_eus-gaap--StockIssuedDuringPeriodSharesIssuedForServices_c20210101__20210331__srt--TitleOfIndividualAxis__custom--ThirdPartiesMember__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockMember_zi6LabDAx2Uh" title="Number of shares issued for services"&gt;4,290&lt;/span&gt; shares of restricted stock for services during
the three months ended March 31, 2022 and 2021, respectively. There was no unrecognized stock-based compensation expense related to restricted
stock issued.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Stock-Based
Compensation Expense&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89D_eus-gaap--ScheduleOfShareBasedCompensationActivityTableTextBlock_zPYBrbJSqFV2" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company recognized stock-based compensation expense related to the types of awards discussed above as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_z76fbZFhXxG8" style="display: none"&gt;Schedule of Recognized Stock-based Compensation Expense&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_491_20220101__20220331_zSzyjgXgojKj" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_498_20210101__20210331_zLEHlnmmSMdb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--EmployeeStockOptionMember_ze6yUBk9hx1k" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%"&gt;Options&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 16%; text-align: right"&gt;40,874&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 16%; text-align: right"&gt;76,672&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsQ7WzlCG6c3" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Restricted stock units&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;1,334,223&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;1,396,440&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--StockCompensationPlanMember_zm2AWY00LFua" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Stock&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0892"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;39,900&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--AllocatedShareBasedCompensationExpense_zeoC4gLwIlK9" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; padding-left: 10pt; text-align: left"&gt;Total stock-based compensation expense&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,375,097&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,513,012&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AB_zmSgsxVv7dqd" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember"
      decimals="INF"
      unitRef="Shares">6000000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="AsOf2022-03-31_custom_TwoThousandFifteenLongTermIncentivePlanMember"
      decimals="INF"
      unitRef="Shares">2095266</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_891_eus-gaap--ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_ztKgdy8Bqvh3" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes option activity during the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B9_zFj1t5YgHYJ7" style="display: none"&gt;Schedule of Option Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Number of Options&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Exercise Price&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Fair Value&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Remaining Contractual Life (Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: center; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 36%"&gt;Outstanding at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iS_c20220101__20220331_zm8ni8HOyp94" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Options Outstanding, Beginning"&gt;1,111,363&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iS_pid_c20220101__20220331_zjFS2oGGdLC" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price Outstanding, Beginning"&gt;2.12&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98C_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331_zAqHrRACGyn1" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value Outstanding, Beginning"&gt;1.31&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_pid_dtY_c20220101__20220331_zjmfQduMY8Jh" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted-average Remaining Contractual Life (years) Outstanding, Beginning"&gt;6.62&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_c20220101__20220331_zFZq5mwhakx6" style="text-align: right" title="Number of Options Outstanding, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0752"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zLJwzTPT313j" style="text-align: right" title="Weighted Average Exercise Price Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0754"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zMNO7zKKMxqh" style="text-align: right" title="Weighted Average Fair Value Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0756"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Expired&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20220101__20220331_z2lnJiwKu0kd" style="text-align: right" title="Number of Options Outstanding, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0758"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zpscqZ4oqLGf" style="text-align: right" title="Weighted Average Exercise Price Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0760"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_c20220101__20220331_ziJTEheYQg9i" style="text-align: right" title="Weighted Average Fair Value Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0762"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_c20220101__20220331_zm9zTDNfUqg1" style="text-align: right" title="Number of Options Outstanding, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0764"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zI60XZcOrfIg" style="text-align: right" title="Weighted Average Exercise Price Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0766"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_zTusk0Q1HwEi" style="text-align: right" title="Weighted Average Fair Value Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0768"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Exercised&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_ecustom--StockIssuedDuringPeriodSharesStockOptionsExercised1_iN_di_c20220101__20220331_zmfWwUWz21fk" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Options Outstanding, Exercised"&gt;(45,456&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_pid_c20220101__20220331_zH4PiywzNzl7" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price Exercised"&gt;1.10&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98B_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised_iE_pid_c20220101__20220331_zctHiNPIvZE" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value Exercised"&gt;0.51&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Outstanding at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iE_c20220101__20220331_z1G0zrKY3xE6" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Outstanding, Ending"&gt;1,065,907&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zWUT54m7tuGe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price Outstanding, Ending"&gt;2.17&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331_z1CaCrgSNUX5" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value Outstanding, Ending"&gt;1.35&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_905_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm_dtY_c20220101__20220331_zHaUED7Uv6C1" title="Weighted-average Remaining Contractual Life (years) Outstanding, Ending"&gt;6.65&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Exercisable at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_iE_c20220101__20220331_ziLdpTMQn0j3" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Options Exercisable Ending"&gt;1,049,241&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_iE_pid_c20220101__20220331_zwUa7Rgtndfk" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Exercisable Ending"&gt;2.05&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_984_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable_iE_pid_c20220101__20220331_z1WB4Z83K5md" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Exercisable Ending"&gt;1.21&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_90D_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zNnzpFa7cASa" title="Weighted-average Remaining Contractual Life (years), Exercisable Ending"&gt;6.63&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">1111363</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">2.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">1.31</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2022-01-01to2022-03-31">P6Y7M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <CODX:StockIssuedDuringPeriodSharesStockOptionsExercised1
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">45456</CODX:StockIssuedDuringPeriodSharesStockOptionsExercised1>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">1.10</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">0.51</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">1065907</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">2.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">1.35</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm contextRef="From2022-01-01to2022-03-31">P6Y7M24D</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">1049241</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">2.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">1.21</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="From2022-01-01to2022-03-31">P6Y7M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="From2022-01-012022-03-31_custom_StockOptionsMember"
      decimals="-5"
      unitRef="USD">300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="AsOf2022-03-31_custom_StockOptionsMember"
      decimals="-5"
      unitRef="USD">4500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares
      contextRef="AsOf2022-03-31_custom_StockOptionsMember"
      decimals="INF"
      unitRef="Shares">16666</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="AsOf2022-03-31_custom_StockOptionsMember"
      decimals="0"
      unitRef="USD">37241</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="From2022-01-012022-03-31_custom_StockOptionsMember">P0Y2M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_892_eus-gaap--ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_zkR6cdqpf4h" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
grant date fair value of RSUs granted is determined using the closing market price of the Company&#x2019;s common stock on the grant date
with the associated compensation expense amortized over the vesting period of the awards. The following table sets forth the outstanding
RSUs and related activity for the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B1_zCzRWJbV2WC1" style="display: none"&gt;Schedule of Outstanding Restricted Stock Units and Related Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Number of RSUs&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Weighted Average Grant Date Fair Value&lt;/td&gt;&lt;td style="text-align: center; padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; width: 60%"&gt;Unvested at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iS_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zj0haNKa41L6" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Number of Restricted Stock Units, Outstanding Beginning"&gt;1,267,415&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iS_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zPDQwjPVPZQ7" style="padding-bottom: 1pt; width: 16%; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Beginning"&gt;9.94&lt;/td&gt;&lt;td style="padding-bottom: 1pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_983_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zBvpfwns7NXf" style="text-align: right" title="Number of Restricted Stock Units, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0808"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zbfceDCgQzG1" style="text-align: right" title="Weighted Average Grant Date Fair Value, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0810"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsr2FAUFsY15" style="text-align: right" title="Number of Restricted Stock Units, Vested"&gt;(68,750&lt;/td&gt;&lt;td style="text-align: left"&gt;)&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zdoJlsjmka6f" style="text-align: right" title="Weighted Average Grant Date Fair Value, Vested"&gt;10.23&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_iN_di_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zd2CW2RnTX41" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Restricted Stock Units, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0816"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zRdW35RSmsJ5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Grant Date Fair Value, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0818"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Unvested at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_iE_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zF15KGf5pLSi" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Restricted Stock Units, Outstanding Ending"&gt;1,198,665&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_iE_pid_c20220101__20220331__us-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_z4ziqRB3cBJe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Grant Date Fair Value, Outstanding Ending"&gt;9.92&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="Shares">1267415</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="USDPShares">9.94</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="Shares">68750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="USDPShares">10.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="Shares">1198665</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="INF"
      unitRef="USDPShares">9.92</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="AsOf2022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="-5"
      unitRef="USD">10300000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember">P2Y1M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_899_eus-gaap--ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_z1wJP62NylF4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
following table summarizes warrant activity during the three months ended March 31, 2022:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8BA_zmWowKLiH7td" style="display: none"&gt;Schedule of Warrant Activity&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Number of Warrants&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Exercise Price&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Fair Value&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center"&gt;Weighted Average Remaining Contractual Life (Years)&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 36%"&gt;Outstanding at December 31, 2021&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iS_c20220101__20220331_zINttDYfthV3" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Number of Warrants Outstanding, Beginning"&gt;526,281&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice_iS_c20220101__20220331_zaEjjCFGB8If" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Exercise Price, Beginning"&gt;8.15&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iS_c20220101__20220331_zAMBLeDQI2xc" style="padding-bottom: 2.5pt; width: 12%; text-align: right" title="Weighted Average Fair Value, Beginning"&gt;4.01&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 12%; text-align: right"&gt;&lt;span id="xdx_901_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1_dtY_c20220101__20220331_zXxfhiYJ8YQj" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_c20220101__20220331_zFTwFSliwhhb" style="text-align: right" title="Number of Warrants Outstanding, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0838"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice_c20220101__20220331_zOtZnFemB6X9" style="text-align: right" title="Weighted Average Exercise Price, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0840"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_z8woLIlZ5ZZb" style="text-align: right" title="Weighted Average Fair Value, Granted"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0842"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt"&gt;Expired&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_iN_di_c20220101__20220331_zwxKLvtGG0Z4" style="text-align: right" title="Number of Warrants Outstanding, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0844"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_987_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20220101__20220331_z5XhppworVa7" style="text-align: right" title="Weighted Average Exercise Price, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0846"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue_c20220101__20220331_zI1ZFD4Jam0g" style="text-align: right" title="Weighted Average Fair Value, Expired"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0848"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt"&gt;Forfeited/Cancelled&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_c20220101__20220331_z0igDcUrLtCg" style="text-align: right" title="Number of Warrants Outstanding, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0850"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice_c20220101__20220331_zSDpvx9C9ii6" style="text-align: right" title="Weighted Average Exercise Price, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0852"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_986_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue_c20220101__20220331_znqvowCE0we1" style="text-align: right" title="Weighted Average Fair Value, Forfeited/Cancelled"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0854"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98E_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_iN_di_c20220101__20220331_zUDzI34kvrZi" style="border-bottom: Black 1pt solid; text-align: right" title="Number of Warrants Outstanding, Exercised"&gt;(50,000&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;)&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98F_ecustom--ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice_c20220101__20220331_zi3iWflCO9Kc" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Exercise Price, Exercised"&gt;2.00&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_985_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_c20220101__20220331_zCkH6fj1orj5" style="padding-bottom: 1pt; text-align: right" title="Weighted Average Fair Value, Exercised"&gt;1.22&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: right"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt"&gt;Outstanding at March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_iE_c20220101__20220331_zUIDeoF7zjq5" style="border-bottom: Black 2.5pt double; text-align: right" title="Number of Warrants Outstanding, Ending"&gt;476,281&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_989_ecustom--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice_iE_c20220101__20220331_zi0ar9QRWgNe" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Exercise Price, Ending"&gt;8.80&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;$&lt;/td&gt;&lt;td id="xdx_988_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue_iE_c20220101__20220331_zKatffPbVt73" style="padding-bottom: 2.5pt; text-align: right" title="Weighted Average Fair Value, Ending"&gt;2.82&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: right"&gt;&lt;span id="xdx_90F_ecustom--SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2_dtY_c20220101__20220331_zujqIlxFtNni" title="Weighted-average Remaining Contractual Life (Years) Outstanding, Ending"&gt;4.8&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;


</us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="AsOf2021-12-31" decimals="INF" unitRef="Shares">526281</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">8.15</CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">4.01</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1 contextRef="From2022-01-01to2022-03-31">P4Y8M12D</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised>
    <CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">2.00</CODX:ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="USDPShares">1.22</CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">476281</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">8.80</CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue
      contextRef="AsOf2022-03-31"
      decimals="INF"
      unitRef="USDPShares">2.82</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue>
    <CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2022-01-01to2022-03-31">P4Y9M18D</CODX:SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue
      contextRef="From2022-01-012022-03-31_custom_StockOptionsMember"
      decimals="-5"
      unitRef="USD">300000</CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue>
    <CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue
      contextRef="From2021-01-012021-03-31_custom_StockOptionsMember"
      decimals="-5"
      unitRef="USD">0</CODX:ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="AsOf2022-03-31_us-gaap_WarrantMember"
      decimals="-5"
      unitRef="USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <CODX:ClassOfWarrantExercisable contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">20000</CODX:ClassOfWarrantExercisable>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights contextRef="AsOf2022-03-31" decimals="INF" unitRef="Shares">456000</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="From2022-01-012022-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember"
      decimals="INF"
      unitRef="Shares">0</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="From2021-01-012021-03-31_custom_ThirdPartiesMember_us-gaap_RestrictedStockMember"
      decimals="INF"
      unitRef="Shares">4290</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:ScheduleOfShareBasedCompensationActivityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89D_eus-gaap--ScheduleOfShareBasedCompensationActivityTableTextBlock_zPYBrbJSqFV2" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company recognized stock-based compensation expense related to the types of awards discussed above as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_z76fbZFhXxG8" style="display: none"&gt;Schedule of Recognized Stock-based Compensation Expense&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="display: none; vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_491_20220101__20220331_zSzyjgXgojKj" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_498_20210101__20210331_zLEHlnmmSMdb" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31,&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;2021&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--EmployeeStockOptionMember_ze6yUBk9hx1k" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 60%"&gt;Options&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 16%; text-align: right"&gt;40,874&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 16%; text-align: right"&gt;76,672&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_407_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--RestrictedStockUnitsRSUMember_zsQ7WzlCG6c3" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Restricted stock units&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;1,334,223&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;1,396,440&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_400_eus-gaap--AllocatedShareBasedCompensationExpense_hus-gaap--AwardTypeAxis__us-gaap--StockCompensationPlanMember_zm2AWY00LFua" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Stock&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0892"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;39,900&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_401_eus-gaap--AllocatedShareBasedCompensationExpense_zeoC4gLwIlK9" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; padding-left: 10pt; text-align: left"&gt;Total stock-based compensation expense&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,375,097&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;1,513,012&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:ScheduleOfShareBasedCompensationActivityTableTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2022-01-012022-03-31_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      unitRef="USD">40874</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2021-01-012021-03-31_us-gaap_EmployeeStockOptionMember"
      decimals="0"
      unitRef="USD">76672</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2022-01-012022-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="0"
      unitRef="USD">1334223</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2021-01-012021-03-31_us-gaap_RestrictedStockUnitsRSUMember"
      decimals="0"
      unitRef="USD">1396440</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2021-01-012021-03-31_us-gaap_StockCompensationPlanMember"
      decimals="0"
      unitRef="USD">39900</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1375097</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1513012</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80E_eus-gaap--IncomeTaxDisclosureTextBlock_zppyCcVYXcO" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
9 &#x2013; &lt;span id="xdx_823_zf2PBTQeSRoj"&gt;Income Taxes&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;For
the three months ended March 31, 2022, the Company recognized expense from income taxes of $&lt;span id="xdx_908_eus-gaap--IncomeTaxExpenseBenefit_c20220101__20220331_z1tCSpWLmFo7" title="Income tax expense benefit"&gt;1,386,087&lt;/span&gt;, representing an effective tax
rate of &lt;span id="xdx_900_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_pid_dp_uPure_c20220101__20220331_zPyFA3rZrKqc" title="Effective tax rate"&gt;10.6&lt;/span&gt;%. The Company&#x2019;s effective tax rate will generally differ from the U.S. Federal statutory rate of &lt;span id="xdx_90D_eus-gaap--EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_pid_dp_uPure_c20220101__20220331_zWmLJWvwz8Qe" title="Effective federal statutory  tax rate"&gt;21.0&lt;/span&gt;% due to state
taxes, permanent items, and discrete items. For the three months ended March 31, 2021, the Company recognized expense from income taxes
of $&lt;span id="xdx_90F_eus-gaap--IncomeTaxExpenseBenefit_c20210101__20210331_zHYWtUxgSXP3" title="Income tax expense benefit"&gt;1,985,640&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">1386087</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Pure">0.106</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="From2022-01-01to2022-03-31"
      decimals="INF"
      unitRef="Pure">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-012021-03-31"
      decimals="0"
      unitRef="USD">1985640</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_805_eus-gaap--RelatedPartyTransactionsDisclosureTextBlock_zy9OByMN4GHl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
10 &#x2013; &lt;span id="xdx_823_z8hNhd2P3LZ5"&gt;Related Party Transactions&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company acquired the exclusive rights to the CoPrimer technology pursuant to an exclusive license agreement, dated April 2014 (the &#x201c;Exclusive
License Agreement&#x201d;), between the Company and DNA Logix, Inc., which was assigned to Dr. Brent Satterfield, a former executive officer,
prior to the Company&#x2019;s acquisition of DNA Logix, Inc. On March 1, 2017, the Company entered into an amendment to its Exclusive
License Agreement for its Cooperative Primers (&#x201c;License&#x201d;) technology with Dr. Satterfield. The amendment provides in part
that all accrued royalties under the License cease as of January 1, 2017, and the Company began in January 2017 to pay to Dr. Satterfield
$&lt;span id="xdx_90F_eus-gaap--AccruedRoyaltiesCurrent_iI_pp0p0_c20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z0VdzYJIufjj" title="Accrued royalties"&gt;700,000&lt;/span&gt; of accrued royalties at the rate of $&lt;span id="xdx_905_eus-gaap--PaymentsForRoyalties_c20170101__20170130__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_pp0p0" title="Payment for royalties per month"&gt;10,000&lt;/span&gt; per month. At March 31, 2022 and 2021, the aggregate balance of this related party
liability was $&lt;span id="xdx_90E_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20220331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_zgoU24xJvbxj" title="Due to related party"&gt;0&lt;/span&gt; and $&lt;span id="xdx_908_eus-gaap--DueToRelatedPartiesCurrentAndNoncurrent_iI_pp0p0_c20210331__us-gaap--TypeOfArrangementAxis__custom--ExclusiveLicenseAgreementMember__srt--TitleOfIndividualAxis__custom--DrBrentSatterfieldMember_z7iPe3fPq6f" title="Due to related party"&gt;120,000&lt;/span&gt;, respectively.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;




&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:AccruedRoyaltiesCurrent
      contextRef="AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember"
      decimals="0"
      unitRef="USD">700000</us-gaap:AccruedRoyaltiesCurrent>
    <us-gaap:PaymentsForRoyalties
      contextRef="From2017-01-012017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember"
      decimals="0"
      unitRef="USD">10000</us-gaap:PaymentsForRoyalties>
    <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent
      contextRef="AsOf2022-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember"
      decimals="0"
      unitRef="USD">0</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
    <us-gaap:DueToRelatedPartiesCurrentAndNoncurrent
      contextRef="AsOf2021-03-31_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember"
      decimals="0"
      unitRef="USD">120000</us-gaap:DueToRelatedPartiesCurrentAndNoncurrent>
    <us-gaap:LesseeOperatingLeasesTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80C_eus-gaap--LesseeOperatingLeasesTextBlock_zPEbg8C0gI9k" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
11 &#x2013; &lt;span id="xdx_826_zSmjfgkGNaak"&gt;Leases&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company leases office space under a non-cancelable operating lease and leases cancellable with one month notice. The Company expenses
the cancellable leases in the period incurred in accordance with the practical expedient elected. As such, one lease makes up the entirety
of the right-of-use asset and lease liability disclosed.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89B_eus-gaap--LeaseCostTableTextBlock_zhGVF0ucspb4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;For
the three months ended March 31, 2022, components of lease expense are summarized as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B4_zouiYmOacxib" style="display: none"&gt;Schedule
of Lease Expense&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_495_20220101__20220331_z6tVJLHMb66l" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_eus-gaap--OperatingLeaseCost_maLCz2lp_zH9otZYmiV92" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 72%; text-align: left"&gt;Operating lease costs&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 24%; text-align: right"&gt;86,588&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40E_eus-gaap--ShortTermLeaseCost_maLCz2lp_z0BHr5iP7Dwf" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Short-term lease costs&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;76,080&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--LeaseCost_iT_mtLCz2lp_zrKTVxoTGlc7" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Total lease costs&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;162,668&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A8_z4RdnrnG9Vse" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Short-term
lease costs under month-to-month lease agreements are paid to related parties.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_896_ecustom--ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_zVVzrDGvgdsf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
of March 31, 2022, the maturities of the Company&#x2019;s lease liabilities are as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_zUJ5ZslRfQX1" style="display: none"&gt;Schedule
of Maturities on Company Lease Liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_494_20220331_zBhZuJRG2BR2" style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&lt;p style="text-align: center; margin-top: 0; margin-bottom: 0"&gt;Year Ending&lt;/p&gt;
                                              &lt;p style="text-align: center; margin-top: 0; margin-bottom: 0"&gt;December 31,&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_iI_maLOLLPz8za_zhHwGPyV3gdd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; width: 78%"&gt;2022 (remainder)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;221,350&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_iI_maLOLLPz8za_zLFPq8utmS88" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;303,059&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_iI_maLOLLPz8za_zDoXm5VHYgdd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;50,774&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearThree_iI_maLOLLPz8za_z15HGB0gFQv5" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2025&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0936"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: right"&gt;-&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearFour_iI_maLOLLPz8za_zBWq2EvaX9C9" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2026&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0938"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: right"&gt;-&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_ecustom--LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_iI_maLOLLPz8za_zhoLnWbBfXpa" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Thereafter&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0940"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDue_iTI_mtLOLLPz8za_zEuyMBoF1m2g" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Total lease payments&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;575,183&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_iI_zBlcdvQfROwh" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Less: imputed interest&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;16,212&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--OperatingLeaseLiability_iI_zzYB8uOuq2r3" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Present value of operating lease liabilities&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;558,971&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40A_eus-gaap--OperatingLeaseLiabilityCurrent_iI_zCddX53lu3fi" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Less: current portion&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;283,299&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--OperatingLeaseLiabilityNoncurrent_iI_zVaNJB2rcYo4" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Long-term portion&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;275,672&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8A2_zeNKcpFpfg2i" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_89C_ecustom--ScheduleOfOperatingLeaseTableTextBlock_z2pxsh2kbXMk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Other
information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B0_zcoHjjw4IjUj" style="display: none"&gt;Schedule
of Other Information Related to Operating Lease&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_497_20220101__20220331_zsSIqJQrcOkd" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--OperatingLeasePayments_zpgMXeWO2Xme" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%; text-align: left"&gt;Cash paid for operating leases included in operating cash flows&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;154,882&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Remaining lease term of operating leases&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;span id="xdx_900_eus-gaap--OperatingLeaseWeightedAverageRemainingLeaseTerm1_iI_dtY_c20220331_zuSeRQcIqvPb" title="Remaining lease term of operating leases"&gt;2&lt;/span&gt;
years&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Discount rate of operating leases&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--OperatingLeaseWeightedAverageDiscountRatePercent_iI_pid_dp_uPure_c20220331_zON7zcW1s8cl" style="text-align: right" title="Discount rate of operating leases"&gt;3.1&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AC_zeUrWUVup369" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p id="xdx_896_eus-gaap--LesseeOperatingLeaseLiabilityMaturityTableTextBlock_zFGBOl3587Fi" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
previously disclosed in our Annual Report on Form 10-K for the year ended December 31, 2021, future lease payments under ASC 840 for
operating leases were as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_z4qq0XhUJzac" style="display: none"&gt;Schedule of Future Minimum Lease Payments&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="border-bottom: Black 1pt solid; font-weight: bold"&gt;Year Ending December 31,&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49E_20220331_zCSh6K2O3S73" style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_402_eus-gaap--OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_iI_maOLFMPz5Lk_z2Nsfjwe9kN" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; width: 78%; text-align: left"&gt;2022&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;293,595&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueCurrent_iI_maOLFMPz5Lk_zzEsZPvLCn8a" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;303,059&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueInTwoYears_iI_maOLFMPz5Lk_zVhhO38N9Mid" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;50,774&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDue_iTI_mtOLFMPz5Lk_zus8e4KpaRV4" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total lease payments&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;647,428&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

&lt;p id="xdx_8AD_zi80tmDcFWj8" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LeaseCostTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89B_eus-gaap--LeaseCostTableTextBlock_zhGVF0ucspb4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;For
the three months ended March 31, 2022, components of lease expense are summarized as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B4_zouiYmOacxib" style="display: none"&gt;Schedule
of Lease Expense&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="text-align: center; padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_495_20220101__20220331_z6tVJLHMb66l" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_eus-gaap--OperatingLeaseCost_maLCz2lp_zH9otZYmiV92" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 72%; text-align: left"&gt;Operating lease costs&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 24%; text-align: right"&gt;86,588&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40E_eus-gaap--ShortTermLeaseCost_maLCz2lp_z0BHr5iP7Dwf" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Short-term lease costs&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;76,080&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--LeaseCost_iT_mtLCz2lp_zrKTVxoTGlc7" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Total lease costs&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;162,668&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">86588</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">76080</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">162668</us-gaap:LeaseCost>
    <CODX:ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_896_ecustom--ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock_zVVzrDGvgdsf" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
of March 31, 2022, the maturities of the Company&#x2019;s lease liabilities are as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_zUJ5ZslRfQX1" style="display: none"&gt;Schedule
of Maturities on Company Lease Liabilities&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 70%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_494_20220331_zBhZuJRG2BR2" style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&lt;p style="text-align: center; margin-top: 0; margin-bottom: 0"&gt;Year Ending&lt;/p&gt;
                                              &lt;p style="text-align: center; margin-top: 0; margin-bottom: 0"&gt;December 31,&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_iI_maLOLLPz8za_zhHwGPyV3gdd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; width: 78%"&gt;2022 (remainder)&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;221,350&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_iI_maLOLLPz8za_zLFPq8utmS88" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;303,059&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_iI_maLOLLPz8za_zDoXm5VHYgdd" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;50,774&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearThree_iI_maLOLLPz8za_z15HGB0gFQv5" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2025&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0936"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: right"&gt;-&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_403_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDueYearFour_iI_maLOLLPz8za_zBWq2EvaX9C9" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2026&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0938"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: right"&gt;-&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_409_ecustom--LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour_iI_maLOLLPz8za_zhoLnWbBfXpa" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;Thereafter&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&lt;span style="-sec-ix-hidden: xdx2ixbrl0940"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;-&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40B_eus-gaap--LesseeOperatingLeaseLiabilityPaymentsDue_iTI_mtLOLLPz8za_zEuyMBoF1m2g" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Total lease payments&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;575,183&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_iI_zBlcdvQfROwh" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Less: imputed interest&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;16,212&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--OperatingLeaseLiability_iI_zzYB8uOuq2r3" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Present value of operating lease liabilities&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;558,971&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40A_eus-gaap--OperatingLeaseLiabilityCurrent_iI_zCddX53lu3fi" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 1pt; text-align: left"&gt;Less: current portion&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;283,299&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40F_eus-gaap--OperatingLeaseLiabilityNoncurrent_iI_zVaNJB2rcYo4" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Long-term portion&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;$&lt;/td&gt;&lt;td style="text-align: right"&gt;275,672&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</CODX:ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">221350</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">303059</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">50774</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">575183</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">16212</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">558971</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">283299</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">275672</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <CODX:ScheduleOfOperatingLeaseTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_89C_ecustom--ScheduleOfOperatingLeaseTableTextBlock_z2pxsh2kbXMk" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Other
information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B0_zcoHjjw4IjUj" style="display: none"&gt;Schedule
of Other Information Related to Operating Lease&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_497_20220101__20220331_zsSIqJQrcOkd" style="border-bottom: Black 1pt solid; text-align: center; font-weight: bold"&gt;Three Months Ended March 31, 2022&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_404_eus-gaap--OperatingLeasePayments_zpgMXeWO2Xme" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="width: 78%; text-align: left"&gt;Cash paid for operating leases included in operating cash flows&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;154,882&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="text-align: left"&gt;Remaining lease term of operating leases&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;span id="xdx_900_eus-gaap--OperatingLeaseWeightedAverageRemainingLeaseTerm1_iI_dtY_c20220331_zuSeRQcIqvPb" title="Remaining lease term of operating leases"&gt;2&lt;/span&gt;
years&lt;/span&gt;&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="text-align: left"&gt;Discount rate of operating leases&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td id="xdx_981_eus-gaap--OperatingLeaseWeightedAverageDiscountRatePercent_iI_pid_dp_uPure_c20220331_zON7zcW1s8cl" style="text-align: right" title="Discount rate of operating leases"&gt;3.1&lt;/td&gt;&lt;td style="text-align: left"&gt;%&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</CODX:ScheduleOfOperatingLeaseTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="From2022-01-01to2022-03-31"
      decimals="0"
      unitRef="USD">154882</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="AsOf2022-03-31">P2Y</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="AsOf2022-03-31" decimals="INF" unitRef="Pure">0.031</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_896_eus-gaap--LesseeOperatingLeaseLiabilityMaturityTableTextBlock_zFGBOl3587Fi" style="font: 10pt Times New Roman, Times, Serif; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;As
previously disclosed in our Annual Report on Form 10-K for the year ended December 31, 2021, future lease payments under ASC 840 for
operating leases were as follows:&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;span id="xdx_8B6_z4qq0XhUJzac" style="display: none"&gt;Schedule of Future Minimum Lease Payments&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 100%"&gt;
  &lt;tr style="vertical-align: bottom"&gt;
    &lt;td style="border-bottom: Black 1pt solid; font-weight: bold"&gt;Year Ending December 31,&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" id="xdx_49E_20220331_zCSh6K2O3S73" style="border-bottom: Black 1pt solid; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;td style="padding-bottom: 1pt; font-weight: bold"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_402_eus-gaap--OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear_iI_maOLFMPz5Lk_z2Nsfjwe9kN" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-left: 10pt; width: 78%; text-align: left"&gt;2022&lt;/td&gt;&lt;td style="width: 2%"&gt;&#160;&lt;/td&gt;
    &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;&lt;td style="width: 18%; text-align: right"&gt;293,595&lt;/td&gt;&lt;td style="width: 1%; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_40C_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueCurrent_iI_maOLFMPz5Lk_zzEsZPvLCn8a" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;
    &lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: right"&gt;303,059&lt;/td&gt;&lt;td style="text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDueInTwoYears_iI_maOLFMPz5Lk_zVhhO38N9Mid" style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;
    &lt;td style="padding-bottom: 1pt; padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt;&lt;td style="padding-bottom: 1pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&#160;&lt;/td&gt;&lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;50,774&lt;/td&gt;&lt;td style="padding-bottom: 1pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr id="xdx_406_eus-gaap--OperatingLeasesFutureMinimumPaymentsDue_iTI_mtOLFMPz5Lk_zus8e4KpaRV4" style="vertical-align: bottom; background-color: White"&gt;
    &lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;Total lease payments&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt"&gt;&#160;&lt;/td&gt;
    &lt;td style="border-bottom: Black 2.5pt double; text-align: left"&gt;$&lt;/td&gt;&lt;td style="border-bottom: Black 2.5pt double; text-align: right"&gt;647,428&lt;/td&gt;&lt;td style="padding-bottom: 2.5pt; text-align: left"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;

</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">293595</us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">303059</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">50774</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDue contextRef="AsOf2022-03-31" decimals="0" unitRef="USD">647428</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_804_eus-gaap--CommitmentsAndContingenciesDisclosureTextBlock_zhotIR4Z9cd4" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
12 &#x2013;&lt;span id="xdx_82A_z1MdzimMC083"&gt; Commitments and Contingencies&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;&#160;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;i&gt;Litigation&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Liabilities
for loss contingencies arising from claims, assessments, litigation, fines, and penalties and other sources are recorded when it is probable
that a liability has been incurred and the amount can be reasonably estimated. Legal costs incurred in connection with loss contingencies
are expensed as incurred.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company is currently a defendant in five different securities class action complaints that were filed by certain stockholders of the
Company claiming that the Company promulgated false and misleading press releases to increase the price of our stock to improperly benefit
the officers and directors of the Company. The plaintiffs demand compensatory damages sustained as a result of the Company&#x2019;s alleged
wrongdoing in an amount to be proven at trial. The Company believes these lawsuits are without merit and intends to defend the cases
vigorously. The Company is unable to estimate a range of loss, if any, that could result were there to be an adverse final decision in
these cases. As of the date of this report, the Company does not believe it is probable that these cases will result in an unfavorable
outcome; however, if an unfavorable outcome were to occur in these cases, it is possible that the impact could be material to the Company&#x2019;s
results of operations in the period(s) in which any such outcome becomes probable and estimable.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:ScheduleOfStockholdersEquityTableTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_807_eus-gaap--ScheduleOfStockholdersEquityTableTextBlock_zkgBojtQKENl" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
13 &#x2013; &lt;span id="xdx_827_zp7H4K9bbtt9"&gt;Share Repurchase Program&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;&lt;span&gt;&#160;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;In
March 2022, the Company&#x2019;s Board of Directors authorized a share repurchase program that would allow the Company to repurchase up
to $&lt;span id="xdx_900_eus-gaap--StockRepurchaseProgramAuthorizedAmount1_iI_pn5n6_c20220331_z6xGkHaVHpM7" title="Stock repurchase program authorized amount"&gt;30.0&lt;/span&gt; million of CODX common stock. The repurchase program does not obligate the Company to acquire any particular amount of common
shares, and the repurchase program may be suspended or discontinued at any time at the Company&#x2019;s discretion. The timing and amount
of any share repurchases under the share repurchase program will be determined by Co-Diagnostics&#x2019; management at its discretion
based on ongoing assessments of the capital needs of the business, the market price of the Company&#x2019;s common stock, corporate and
regulatory requirements, and general market conditions.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company has not made any repurchases under the share purchase program since its implementation.&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

</us-gaap:ScheduleOfStockholdersEquityTableTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="AsOf2022-03-31" decimals="-5" unitRef="USD">30000000.0</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:SubsequentEventsTextBlock contextRef="From2022-01-01to2022-03-31">&lt;p id="xdx_80A_eus-gaap--SubsequentEventsTextBlock_zZ26vTghGtkh" style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;b&gt;Note
14 &#x2013; &lt;span id="xdx_82D_zKe8NmtZ1Yuj"&gt;Subsequent Events&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&#160;&lt;/span&gt;&lt;/p&gt;

&lt;p style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; margin-left: 0; text-align: justify"&gt;&lt;span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;The
Company evaluated subsequent events pursuant to ASC Topic 855 and has determined that there are no events that need to be reported.&lt;/span&gt;&lt;/p&gt;

</us-gaap:SubsequentEventsTextBlock>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#Fact000559"
          xlink:label="Fact000559"
          xlink:type="locator"/>
        <link:footnote id="Footnote000602" xlink:label="Footnote000602" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Based on weighted-average useful life established as of the acquisition date.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000559"
          xlink:to="Footnote000602"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000567"
          xlink:label="Fact000567"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000567"
          xlink:to="Footnote000602"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000581"
          xlink:label="Fact000581"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000581"
          xlink:to="Footnote000602"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact000589"
          xlink:label="Fact000589"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact000589"
          xlink:to="Footnote000602"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>62
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
MCW;W(G/W8/1V>!=XIXW1]?!QHR2$8 W@]WL-"KA_L*\7Q]?)E_\!4$L#!!0
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
M+F.$)9M;J.9#BWU]D?,LM!9E_;H#GH$T OC_1@C]]F$FZ.X"E_\!4$L#!!0
M   ( +* K%0\ -!X.@<  "T=   8    >&PO=V]R:W-H965T<R]S:&5E=#4N
M>&ULK5E;;]LV%/XKA+&'#:AKD=0U2 (T[H8%6(>@0;=G6J)CM9+H4K23[-?O
MD%(D6:+HI.A++"F'Y'>NWR%Y^2CDMWK'N4)/95'55XN=4ON+U:I.=[QD]7NQ
MYQ7\9RMDR12\RH=5O9><96906:R(YX6KDN75XOK2?+N3UY?BH(J\XG<2U8>R
M9/+YAA?B\6J!%R\?/N</.Z4_K*XO]^R!WW/U97\GX6W5S9+E):_J7%1(\NW5
MX@.^6--8#S 2_^3\L1X\(ZW*1HAO^N4VNUIX&A$O>*KT% Q^CGS-BT+/!#B^
MMY,NNC7UP.'SR^Q_&.5!F0VK^5H4_^:9VETMX@7*^)8="O59//[)6X4"/5\J
MBMK\18^-;!0M4'JHE2C;P8"@S*OFESVUAA@,@'GL T@[@(P'^#,#:#N &D4;
M9$:MCTRQZTLI'I'4TC";?C"V,:-!F[S2;KQ7$OZ;PSAUO195+8H\8XIGZ%[!
M#_A(U4ALT9K5._0'^+E&OWZIV"'+0>8WM$1?[C^B7W_Y[7*E (">9I6VB]TT
MBY&9Q2CZ)"JUJ]'O5<:ST_$K -ZA)R_H;XASPD],OD<4OT/$(\2"9_WZX=@!
MAW;&I&8^.F=,;;&ML=A6BA)!LDFF\NJAB=9<Y;QV+.-WR_AF&7]FF;\AN_,J
M%26WN: 9&YJQ.HF/UQA'V ^2X')U'-IF*AC%29Q$O=P)NJ!#%SB-\"'["F';
M1)$2D.JIJ-*\X*CJ8.OOJ;;5H8:HRRNKH2X<E@H[+*'34A\YU+8T9TW%J#+$
M2B%5_I_Y8#->,UTPL GQ(Q+Z(]--Q<+(\V8,%W5@(R?8>R72;TM=DS($5H)"
M73? ^9-^MCH[F@#!- J\)!H!ML@%F'J8V"'''>38"7F]8]4#UQ[<LERB(RL.
M7)<.EGX_Y'5NT(/[M6<Y!,$X^AL=X@FV):411*(W4L*)1?/=1;UG*;]:@--K
M+H]\<8T<091T2B;N=!/5TD1KP<$W+F\D$TWB*"0C+9R+O5T+[/65WG/J\9>H
MV[K$P3OJ&95<[83.OR-O$M9:T;UI2F!*DY%6%C$_]!.?V@,,#_@)GT<-893E
M]5ZT(:4CK*ZYLH93.]\024)]7=]/ 3N7_0$_D%XC<J8H;;F4IO UQ9 ]V1.C
MG><D,S -D@B'8V6FDM0C-$EFK-\3&J9.K#<L@Z9HHUQ1WTYQXOHHGL2]12Q*
MH&K.0.S)$/MNTC4UJ-9%J D*4^B+G&WRXBR1X)[5<."TQ(<T%0?-:4 H/#^R
M36$W1C#U61QA+Z9C<U@$@R1)_!E[])2'W9QW)_F>Y=F+Q^R1-24P[/DDH1.G
M3067&/M^-)?7/=EA-]O=0M6IE)#/5GQ3OEI2+XX3?\S$%DD,817$> 9@3VW8
MS6U=FDH.2 ]V;UNX"P>>YXVIRRKHA\$@DT]A]N2$W>QT.R@B:,^>9P-S2DXD
M\H/8FP3F5!!C$OLTMD,E/0$1-P%U*=3"? =]0BH/O(]5D[I"[;@<)K!-'3+E
MFV7HX] ;!XA5,,08SW1KI&<FXF8FW8:;OF OQ3&'#0W:/+^BY6_Q3UDJBKT@
M'EBYQ3\5Q(2$21+,*= 3$2%OVJXTC<"KMRND9Q'B9I&[@TQW3/L7F!NL!3:"
M]D/[6G<B^[G6@TP98TF3,)QDETT04[#07,CVY$+<6ZT[*5+.L]9 )5,':<RB
M%2F9_,:5#N1!"X5JGK8R5I5\BS>#@(1C1K<($H^2V)OIV$E/9,1-9+<]5J#,
MKR*'!UV*#]):-]RSO:I/:C6:$IZIE#,- .D)C[@)SYJ'YV.Y56]*<'$0AU-_
M6':&%/C2G^%KTA,AB=Z4A=N\8K!7>G46]H1&W(1V&LO\B<LTK\UV3>QU6]U4
MWT<F):OLK369LIAANW%O;9/SXV2.DTE/=N3,5LSFZO,&:]%;B,V*WB+G0$][
M_J-N_FO/;:391D+N&4VTS<V#+H6P@>8SMJ=3'HMC[ ?>^%C'(@CP,<'Q3*;1
MGO&HF_'6<X 14VC#'_*JTF[019[+7&16/:9\%L>A%Q$Z9FZ+)+2H41CAF>:3
M]LQ'W5LPIR)<]R!.%::[K22"'68TV15;)(,HBJ&1G5-A<-3H/FN\/^SWA3FL
M987>'*>%J*&$:^3I2T6!(&L.^B>G7:>+]G1(W71X6RD.55XAO<.PFL8Y_@UL
M\1,F.M6QYT=ZCA]/&NH9/7\6*_Z$B4[U[&F3AC\:0-7+B=> 12$I^D*K@")J
M9BYB7-Q$>Q*DK]P-HE(<H:PKT?6)[]"^ $(ZWRY2RU8P(5XPIG(WE!\P><_
MU,W YI)L*;;+ Q! >U@A-HJ!F#D&YT]I<Z *68LJ_CC8331GCV<V1>WRPR/]
M,,:4C$^#W3#?8('5X.*IY/+!W,?5R&SSFEN<[FMWY_?!W'2-OM_@BW5S<]=/
MTUPD?F(2>*4& VQA2N]]!/Z5S=U<\Z+$WEQO;812HC2/.\XR+K4 _'\KA'IY
MT0MT-Z37_P-02P,$%     @ LH"L5-V3)E%#!0  @AD  !@   !X;"]W;W)K
M<VAE971S+W-H965T-BYX;6RM65UOVS84_2N$,6 MT-0D)9)2X1AH_('UH4.0
MK-O#L ?&8F(ADNA2=)S^^U&R(MLBQ42M\Q!+\KV'E^?PXXB>[*1Z+-=":/"<
M9T5Y.5IKO?DT'I>KM<AY^5%N1&&^N9<JY]K<JH=QN5&")W52GHTQA'2<\[08
M32?ULVLUG<BMSM)"7"M0;O.<JQ]7(I.[RQ$:O3RX21_6NGHPGDXV_$'<"OUM
M<ZW,W;A%2=)<%&4J"Z#$_>7H,_JTQ'5"'?%W*G;ET36HNG(GY6-U\R6Y',&J
M(I&)E:X@N/EX$C.19162J>-[ SIJVZP2CZ]?T)=UYTUG[G@I9C+[)TWT^G(4
MC4 B[ODVTS=R]X=H.D0JO)7,ROH_V.UC&1R!U;;4,F^2305Y6NP_^7-#Q%$"
M13T)N$G G02,>Q*")B'H) 2T)R%L$L)N"ZPG@30)I). PIX$VB30FOL]6373
M<Z[Y=*+D#J@JVJ!5%[5<=;8A."VJD76KE?DV-7EZ.I-%*;,TX5HDX%:;#S-L
M= GDO;F3J\>US!*ARM_!XOLVU3_ NV\%WR:IB7X/+L"WVSEX]]O[R5B;4BK
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
MQUIXS8>8)!@G3]'Z6(B$-<C8Q\Q >UOL-_)_!YDU;I)YC07%BTIWL*9.4^2
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
M?-UQI>F1Z.$[P.AD)*%H_G3W)=3<SW,JR#@U ?_;O>;3(H_NR$H!+R+9#0\
MN'#HN[#@E<^0N<Z ,S_,)61$Z?[*5"!I 9"Q- Z;/+''PV+Q>XL9ZF&'JUM;
M-SSM@JK^HI\;H5W&2=PAJX6\Y,\A1GP<0/#8OJ$''MW%2&D)/V_K L*Y*]>6
MLK/</Z7(3AZ[L96NO:]25X)6)\>"PRRU8>])8P,=A1!=6OZA/WNA$1TN5-A)
M0JTR').E7NO%EXW.9 8<P$P@_=&I!)V69)^+;^.YA3$P]6<J'3]UY+@A[=K%
M$R]"2$//Z)!,:.MP)),W\AB=LN')6+ISD/"A*KG]>"N#[DI7B3<.-[$M]96D
M':;Y7'.ANYW637)V*N=4W$=!_B4:PY6A.=HAVA0"+>D)MB+(Q2\7=+.7@^BD
M09RN'0)<0*B2)_5CL"ZSC0>O4I[RIK X3X'$BB\?^2;LN-/ENN$C9:0DP^,R
MU#6U5%F;KYI)PK(('DM/TL'""FZ/2_<2_WH:C)%S.Y(("Z>'QF2FX9^A*9O%
MDV /X\*AC$1O;LC1PJ>R\"DM?,H+$Y)PI%&",P-@/:9O;PZCXPN90^##]]C,
MRZ0A[6=(BJ%UG)["CT_ 7,0ZM"062<_C*3]) &5><J^Z, 82VQ7@T8]ML&-)
MZ2Y%.VNK+AIN>5 XZ_2*:V6?%9-4?V]XB/30:0X1:6R:1C/TAQA%O:<ZF5"$
MI=J/+)O]@>:?B$W$H V1HZ;I/@\UD$M[Y]D??;5*^E9T9.7;!7Z0BV_P2=[(
M(XN=(XHK;HPP(N#'PGX/-_&@4CA0>W80!48MQ49FPX8CIB-ZCA,(L7M#IBX!
M_G$3FZB?_?Y=# 7#)@3E](L__(E!]!$J"Q".U8&?L)Y_7YM:CXPNSJKYSG%C
M1Z<70^L_$<7@\,=F=89(-AQKP^<KCBUC63OOTTX?X=8C^W4!XZ*"6X9Y J$L
M!-8G.8B<YK[?,3Y?Y^IE.*F;J%]UETE"HHRE[GC@X&WA3)G1T9)7D1\ X$>D
M*>!'$PPW";:]GS*HC,!G=>3=H8TJ+?J!"M(Y-Q3]F,*.IZ0IY,N)>];T!*48
M&-#C\+&^HY-77JF2=E@HO)!SX=RF)HX>V\'_G_4."''1=X?,$TQYA/G3,"X@
MS&<)\\O1^\<VD^ '[FYR>I&CWRBT43%(1ZK.]2&!P#;(9-BWVZ'I:)>9S&ND
M2R:C;(>M*X:'E8PU\8A3NOHN+%R1L!$/)8F&;PD,B.&PWL?;6;(L%S]+WS:B
M+K5H[Y@B!NW1(9(8U+CB9[BP]Z(5C -[$+$.8S*Z&4TF&D%8O**LX[V(4[LI
MDQNI^3!$+C;<$$R9/G@R'.NR0-SW2(3?P@.G@VS?63ZV\&Z<?:*168K$Z<CV
MNU@%CZNG:BA2XA/#L2=[#AW$4B(F Z<,Z-MC)+79]#])_@Q?@IBYJQ\;9W]1
M&88AZ#E9"#TR<-'9E?24QN.GR=P-)/3B0KVX4I]W-AM>9*;'+S&##*R8X^71
M ;3B<"1G-*ZM1N/:%*-W]@BWV5/<7L[5Y:62H]PL':)O;6-[?R+CU/O6;C(>
M>"6O,X1N&KU+T?MV_(+8'/NX#S7O8] _=DZLWG+%&<K8][=W;^/!;VPX^Q/C
MS%.,A4B<%^#S>CX\'7"/S!-_6#(8I &0'LF[RA^9!P_CI!% M^&4V^_&!8[S
M;#!*(KV'*\55:786*)6N'^;'0/KX*=RQY.QA=B45Y$2%@_?LJ8-W0-WLYQYU
M\'PZNQ0<2T(-V[B]^Z)^M1.^>SH[SQ/U?*!67\\KG[Z3D?=_R#C=L\^ H*4Z
MGU\^3T[IOP0BL>_@W35 QNSP'#6I]4,XC&6.'[+W WQDL"$:C']*X#D,:\5#
MKF-"#:Z5#:XU40GC5,"A5M=AH$4:^<,I!D?(9.B':_?X X_A5(P>DR!N:[O:
M!][8%#R\,4TFG@\?&@KR((71YL=EWC M,;"-EQZ,0M [P51@[E5B@\U@>T</
MVX[9'I5,V7N]:'F5[["E:3+((>9R?3$_8B[3^6/FPF,8$("6DM=7MQ";Z^*I
MF3C/:'25PL##V0564FE;R1C2=4L'*@*2)[%9QNH4,Z"*A%%.GC9BFXP;]=N"
MBO2]/TZD&;?80T5.62$'K8K&3R,RW H[&4Y#TXKE >/'MT@M#H0P& B5@E_U
M/CU<5\6")D*)%D/U83[%;S!I_SQ<<&#C<+R$&4DZSV',(W2WLS"6-1HY\8,U
M8;"%+RWI)#+&Z,?&4/(P: 55U/N)^JTYG/@Y/D@4S2WIP<%59;%6@Y5 59)@
MP;[IFU/CA!%04/@EEA^[R!(0QR#'P68Y%H?ZQ?TEODAR>1MG&F3R$2D][H$.
M7WT+T&/K,)>YTZW.I,_G1^)(SH:P39@9\X/41_IPH1GHQ;WJ326-#AJ>"HM/
M@PL?M$/#62EW(.BDJH1(*/Q51I)^'.[H?><N:57$)$W (631M-*G0$4.=CAK
MA05X^(]K Q^:P]&%  W;9GX RP>(EP^(<0WZX/=-QT@'"G+ _I#*D0F<<#2?
M'1"9J"]IYGZD;\LCI0>##DFO%&S^ )AVF5_>W*C+:SF2./9#SK/D)[, @"O^
M83!7Z4TGOYZ-5^-OCV_E)[?#X_+#91CJBL[Z:KW$J]/)U8L3<>[PI;-;_@'N
MPG9 F_QQK0OHG![ _:5%S>"_T +Q%]EO_@]02P,$%     @ LH"L5,N)SX7K
M @  -@8  !@   !X;"]W;W)K<VAE971S+W-H965T.2YX;6RE55%OVC 0?N=7
MG#)IVB1*0H"N:@$)Z*;QT*UJU>UAVH-QCL2J8V>V0^B_W]D!2J46:=H#V#[?
M?7>?N?L8-]H\V@+1P;:4RDZBPKGJ,HXM+[!DMJ<K5'2SUJ9DCHXFCVUED&4A
MJ)1QFB3G<<F$BJ;C8+LUT[&NG10*;PW8NBR9>9JCU,TDZD=[PYW("^<-\71<
ML1SOT3U4MX9.\0$E$R4J*[0"@^M)-.M?SH?>/SC\$-C8HSUX)BNM'_UAF4VB
MQ!>$$KGS"(R6#2Y02@]$9?S984:'E#[P>+]'_Q*X$Y<5L[C0\J?(7#&)+B+(
M<,UJZ>YT\Q5W?$8>CVMIPS<TK>]H& &OK=/E+I@J*(5J5[;=O<-1P$7R1D"Z
M"TA#W6VB4.4U<VPZ-KH!X[T)S6\"U1!-Q0GE?Y1[9^A64)R;SFM+%FMAH<N5
M4,P_E1W'CJ"]0\QW,/,6)GT#9@ W6KG"PF>58?8R/J:2#G6E^[KFZ4G &V9Z
M,.AW(4W2] 3>X,!S$/ &_\ 3F,I@9BVU_HS_J845P?IKMK+.4+O\/I%W>,@[
M#'F'__N^)V'\:%[:BG&<1#1[%LT&H^DW[; S@/?O+M)^_PI>307?5><:.98K
M-/OWI&]7H'>KF'H"3JM$AQD(9VE,GE]"KV&6;9CB=+?0M%0!LPM+Q7OPP2=.
MDZO98AEV_:N/X467&2LT]0,-7BV9>>F\S&[TWKO;:0K!"VC0( VX9+X&5(Z2
MHZ71VI!D5$+E79H)5QS7W*5$P-Q9H4N,*RV4.]/K,\X(I\1,<"8A$RQ7VCK!
M/9+@V(.'BCAYE!WCEF+'6XY8$[:40/IE';&A]$ $7R5&,"5!T(SR1VB8!=SR
M@JF<6)!: JLJH[>"E /E$PQZ*?1[0QB.SKM)DD"?/J_U5WPTRR6:/"B6I5RU
M<NU8'ZP'49RU6O#LWBHJS5 NJ 4DKBDTZ7T:16!:E6H/3E=!&5;:D<Z$;4'"
MCL8[T/U:4X?M#C[!X:]B^A=02P,$%     @ LH"L5$V&I'4+!   PPD  !D
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
MFA8C4.[+BWLP<FV_=MQ)8V1C;U><55S1!!Q?2#PZ^P=2T'_^.O\O4$L#!!0
M   ( +* K%2'2$1\2P(  .D$   9    >&PO=V]R:W-H965T<R]S:&5E=#$U
M+GAM;)U436_;, R]]U<0VK!3$'^E:=HE!IIVPWKH$+3[. P[*#8="[4D3U*:
M=+]^E.QZ&;!FP"ZQ2/$]/C*DYCMM'FR-Z& O&V47K':NO8@B6]0HN1WK%A7=
M5-I([L@TF\BV!GD90+*)TCB>1I(+Q?)Y\*U,/M=;UPB%*P-V*R4W3TML]&[!
M$O;LN!.;VGE'E,];OL%[=)_;E2$K&EA*(5%9H148K!;L,KE83GQ\"/@B<&</
MSN K66O]X(V;<L%B+P@;+)QGX/1YQ"ML&D]$,G[TG&Q(Z8&'YV?V]Z%VJF7-
M+5[IYJLH7;U@,P8E5GS;N#N]^X!]/:>>K]"-#;^PZV*SC$&QM4[+'DP*I%#=
ME^_[/AP 9O$+@+0'I$%WERBHO.:.YW.C=V!\-+'Y0R@UH$F<4/Y/N7>&;@7A
M7'ZC"BT1/O$]VGGDB-'[HZ)'+SMT^@(Z@UNM7&WAG2JQ_!,?D9)!3OHL9YD>
M);SE9@Q9,H(T3M,C?-E07A;XLG^6!]?"%HVV6X/P[7)MG:&!^'XDQ61(,0DI
M)O_9P:-HOW,7MN4%+A@ME47SB"S_J!V>G,.;5[,T2=["80:@63QQ-8*K#2+(
MKOWHVP_4O*(>NC<"'W:E9<O5$^U/H3=*_*0PW--&6X3*: FBXW:!6U?P&I)1
M-IN.XMD9)/%X"FDRCLEW/CL=32<Q_*UAT<'X232;L&06"KU5KIO$P3OL\64W
MOK_#NT> 2M@(9:'!BJ#Q^.R4@>D6JS.<;L,PK[6CU0C'FMXB-#Z [BM-O>L-
MGV!XW?)?4$L#!!0    ( +* K%1"W"4)7P,  &\'   9    >&PO=V]R:W-H
M965T<R]S:&5E=#$V+GAM;*U538_;-A"]^U<,U*)( <'ZL--=[-H&;&^*I$A2
M8S=M#T4/M#22B%"D0E(K^]]W2$E>I6@,%.A%(JF9-V_><$:K3NG/ID*T<*J%
M-.N@LK:YBR*355@S,U<-2OI2*%TS2UM=1J;1R'+O5(LHC>.?HIIQ&6Q6_NR@
M-RO56L$E'C28MJZ9/N]0J&X=),%X\,C+RKJ#:+-J6(E/:']K#IIVT04EYS5*
MPY4$C<4ZV"9WNZ6S]P:_<^S,9 TNDZ-2G]WF7;X.8D<(!6;6(3!Z/>,>A7!
M1./+@!E<0CK'Z7I$_]GG3KD<F<&]$G_PW%;KX#: ' O6"ONHNK<XY//:X65*
M&/^$KK==D''6&JOJP9D8U%SV;W8:=)@XW,;?<$@'A]3S[@-YE@_,LLU*JPZT
MLR8TM_"I>F\BQZ4KRI/5])63G]T\HF 6<S@P;<_P23-IF-?+K")+^,XJR@:L
M78^5?@-K 1^4M)6!-S+'_&O_B'A=R*4CN5UZ%? #TW-8)"&D<9I>P5M<DEUX
MO,5_3A;^W!Z-U;3[ZTJ<Y27.TL=9_B^B7L5R37EG&I;A.J"N,ZB?,=A\5!9G
M20P_?'>;)LD]7$GL4X6SO:H;)L_4 E]:KLG.5@AXRD1KJ"5 NYMKP"I_OE<'
M36VGP6)62254>8:FU:9ETCH;)B>N@F?4H BLU(C4JS:$W#/9-IH+JENRA%<.
MU3%-X_LWH^?L_>"Y'3V]17+_8PA'M!VB'-@,U&4.#Q^W\%Z5_!3".YG-0^@J
MGE70,0/,&%Y*EYF"![HT.TV(\,2L15UP%'D(#-P(H[SPA%GK9@&HHB 6.IP1
M6:5?!/ AO;8W]Z97S7 _1%3Q3Q;PJP2ZI\3#W]/D)OR*-]% ISB7O72,4LU=
MNBX:)]6O*.((>YN]HB&LF>?<%\? JT'1P6M4;UJUCMO*JS'18>XNQ(1%H]4S
MS]$006CH]LQLQ2PP(2CM3+?$7*LS$Y:324MMK7UV(]4,F2N^<;K\PF1+8_U%
M!E>RJ11'+$D BC-:.C,G0\/.8]TF3&??PTT<AW$<0]*_:)'VJW_KT6@R!$FA
MTH]Z YEJI>WGX>7T\C?9]D/TQ;S_%5$]2TZ]([ @UWA^\SKHFV3<6-7XD7I4
ME@:T7U;T1T3M#.A[H:A!AXT+</G';OX&4$L#!!0    ( +* K%0&JQW4P@0
M .P*   9    >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;)566V_;-A1^UZ\X
M\+IA ^18%\M6TL1 +BU6+%F#I-NP1T:B+*(2J9)4W.S7[QQ2MA6WZ=876R3/
M]YW[(4\W2G\T-><6/K>--&>3VMKN9#8S1<U;9HY4QR6>5$JWS.)2KV>FTYR5
M#M0VLR2*%K.6"3E9G;J]6[TZ5;UMA.2W&DS?MDP_7?!&;<XF\62[<2?6M:6-
MV>JT8VM^S^T?W:W&U6S'4HJ62R.4!,VKL\EY?'(Q)WDG\*?@&S/Z!O+D0:F/
MM'A7GDTB,H@WO+#$P/#OD5_RIB$B-./3P#G9J23@^'O+_M;YCKX\,,,O5?.7
M*&U]-LDG4/**]8V]4YM?^>!/1GR%:HS[A8V7C=,)%+VQJAW :$$KI/]GGX<X
MC !Y] (@&0")L]LK<E9>,<M6IUIM0),TLM&'<]6AT3@A*2GW5N.I0)Q=77-T
MR9S.+'+1SJP8<!<>E[R 2^%&25L;>"-+7C['S]"&G2')UI"+Y)N$-TP?01J'
MD$1)\@V^=.=8ZOC2[W#L&=%\1S1W1//OCM W<=1-)Z9C!3^;8+L8KA_Y9/6[
MLCR(8_CIASR)X]?@R>%#S8-+U79,/D'CMU15B8*#8X >@ZR!@51R6C!9\(8]
M-!RP-36S0JX]")@LMW OY<4VPM:@)(>64H8D%IF/2"ELE?+/V.6("RQNCK$#
MG9! )ZA/J!)71:\UIP]LJT+IDA!>CQ/3U&P%:QQO*;BTX/J0ET=P;G "%'7H
M+/)VM^PCZN@[!T9AH;E]"E3EUIKZ:JJJ:4\>&H.#:N<G-((]B$;8)RB%*1IE
M2 .VJ_/#UIH/3ANDQ3H%K+*BWI59" 7ZCW9(2P$?.(=8 --\F%7B'X0R Y5J
M<(B9$[C'V5CV#2<;70KAC0<%'YS.<6\<Z S>'R2M4 :UOX)\$69Y'MS72MNI
MY;I]=KY<A%$>!1^4Q:@^!\:+)%PL<M@C@[& KQT7A:E54U\#0[VLT=C6>4_.
M=DR48!7.VH9AJG"MK>"&4D:.'L:.0HQCL=>"I&!(UU!1KL"7K\U!GDB05+T4
MS)L1G]Q5IP_Q]9XC^)LS3>&E,%[Q@K</Z".:%I!I\+/F=!^AW[]@?)(D#M,L
MHJ,4TB@-H^R8%G/(HG"YG--W!E/Z6^ ?M@7>;A7&D1:C>'?LR<<J6V9AG*?!
M-3=HOFB[WKI>0 @W%O,1)G$2W%+38^$_LJ;G%)W#;AW'),OR\'@9#Y2NNQ#:
M84+IZDKR-$R.CX-K)=>^-+8GZ!T:LU@F\!Z#KP,A_3WMKTR?1LSH@6H#&TS
M2SEP3/!NQ'2W9]I7KTO*_ZCW2V9J7UI(^*4E.$N:OO2S9']8$*@BVZC LWF8
MYTEPY[*Z#Z"+Q)>!-9 $5S@-5(\AQ(.O!=] >A3#CU39.)P?A>I-,YHASIA>
MP[F4/>;_CE.\J2+I)0!Q-/W-.4/U_D25Z(?+N!#)=_RM>JQG?EA OB7/[R\A
MGT?$%'R9(/Y"EY S;SWK#0:C[=NA/6X']O_H#:R8XS3,CK.7^^&K1?\*%O-E
M.$]R^-J=.AN]0%JNU^Z=A;<0Y< _1G:[NZ?<N7_![,7].Q#+9RTD#8X*H='1
M,IOX.V"[L*IS[YD'9?%UY#YK?(YR30)X7BF\9(<%*=@]<%?_ E!+ P04
M" "R@*Q4F3Z;@I8$   >"@  &0   'AL+W=O<FMS:&5E=',O<VAE970Q."YX
M;6RM5DUOXS80O?M7#%2@: '#3IRD&R2.@23;H@6R1;#;CT/1 R6-+"(4Z9*4
M%?_[OJ$^UEED<RAZL45QYLV;-S.DUIWS3Z%FCO3<&!MNLCK&W=5R&8J:&Q46
M;L<6.Y7SC8I8^NTR[#RK,CDU9KDZ.?EAV2AML\TZO7OTF[5KH]&6'SV%MFF4
M/]RQ<=U-=IJ-+S[J;1WEQ7*SWJDM?^+X^^[18[6<4$K=L W:6?)<W62WIU=W
MYV*?#/[0W(6C9Y),<N>>9/%+>9.=""$V7$1!4/C;\ST;(T"@\<^ F4TAQ?'X
M>43_*>6.7'(5^-Z9/W49ZYOL,J.2*]6:^-%U/_.0SX7@%<Z$]$M=;WNQRJAH
M0W3-X P&C;;]OWH>=#ARN#SYBL-J<%@EWGV@Q/*]BFJS]JXC+]9 DX>4:O(&
M.6VE*)^BQZZ&7]S<NZ;1$2K'0,J6=.]LU';+MM <ULN($&*X+ :XNQYN]16X
M,_H @#K0C[;D\J7_$M0F?JN1W]WJ3< /RB_H['1.JY/5Z@V\LRG?LX1W]E_R
MI?<Z%,:%UC/]=9N'Z-$T?[\1]7R*>IZBGO]?*K\))X-Z%7:JX)L,DQC8[SG;
M_.HBSTY7].TWEZO3TVMZ.],''?56I<%XT"K7!FL.,TPY08! Q0MKY77 BBKO
M&BJ,TDV8DPJ!0T@!YF0FO#E5H"O["(JS0YF8(+!RL68<"*[U10)EC'7A/#J%
MNIHMZ4@ZT,Z[7.6&9[%6D12@>WX'JE6@G,70%JWW<!-4@))J7&LC%<K" *@J
M. N, W&(&K/+Y8(>>*L,$@L09 +05E*UPQG1Z5B_DO],J/(SD@D2\[/[@GZK
M>0:E=\H>A'MZ;2,"*SD;V)8*M!"DPME#I:XJEGT*#,LDN<B)>*HG4  *\DK-
M4O8=S.%K$#8_4,$^8I-P*A1/M3,E^T"N$@4F$JDZ4JOD+]J,.]"U:<U6Q*!*
MF<!)O48'@\-</*27 L3#&I6EZ"1/T9(3SL[K@B4<ZM=32"8-<'?LD7+.EBL=
M9V+LJ@K6OJ][J5'GZ":R(Z4D'_4)0YH R1JQ%Q6@M8++@4K5X'8(N#:")-\7
M0(%FP,'[!6#J_7?7V#>&MUS..N_LMG22'71#=PR- N*Y9.3VZ";1R6ME>CJC
M7#D;S7O1H<:(D5%=:'7LVU;Z!#<<-8PBIA21 8J=1.OKGF@5(N1LK[?.NS:8
MP\L(Z)=6NI3%:VQ424VA\20SZ<0YZ0H1#O.^H(5K33DFG[I#9HJ'A"3!<@_9
MI6DP>>!2Z'1_:COK\TB4%G0[U:*4H.E92_%WSL?YB[XI'42P+HZ*?#&F4Z.-
MX%#'F)%BKWIK*[5W/DTU=$-]^9IJUP'-#PD>V]!@,R3HR!48%\$Z"C,?>4 D
M?<Q#6A+C-$@%5416J:\@O=(LLYYJ$D0Z.9UB88B&$\QK5WX7OI<77:V+6JJ!
M;L3#2#-G^3N21#JB+RA6"WKM!ED>W=EHHVWZ,I%S!^W97]_3V^GCY[:_\S^;
M]U].N".W&HP-5W ]6;R[R,CW7R/](KI=^@+(7<3W1'JL,?/LQ0#[E</=,2PD
MP/1)N/D74$L#!!0    ( +* K%1E@,&N>P(  '@%   9    >&PO=V]R:W-H
M965T<R]S:&5E=#$Y+GAM;*V435/;,!"&[_D5.VZG)R9VG% 82#Q#@$XYT,E
M/PZ='A1[$VFP)2.M"?#KNY(=DTZ;G'JQ];'OHUU)KZ8;8Q^<1"1XKDKM9I$D
MJL_BV.42*^&&ID;-,RMC*T'<M>O8U19%$415&:=)\C&NA-)1-@UC"YM-34.E
MTKBPX)JJ$O9ECJ79S*)1M!VX4VM)?B#.IK58XSW2MWIAN1?WE$)5J)TR&BRN
M9M'%Z&P^\?$AX+O"C=MI@Z]D:<R#[]P4LRCQ"6&).7F"X-\37F)9>A"G\=@Q
MHWY)+]QM;^F?0NU<RU(XO#3E#U60G$6G$12X$DU)=V;S&;MZCCTO-Z4+7]BT
ML>EQ!'GCR%2=F#.HE&[_XKG;AQW!:;)'D':"-.3=+A2RO!(DLJDU&[ ^FFF^
M$4H-:DY.:7\H]V1Y5K&.LGLI+,(=UHW-)5<'"VO65E33F)CN8^*\(\U;4KJ'
M-(9;HTDZN-8%%G_J8\ZJ3RW=IC9/#P)OA1W">'0$:9*F!WCCOM1QX(WW\*X?
M&T4O\/-BZ<CR;?AU@#GIF9/ G/R'[3M(\N8[<[7(<1:QNQS:)XRR+X9P,!K#
MAW>GZ6AT#ON6@QL]X.W*9=BK(R")<&FJ6NB7(#TY=S WPA9@5G"E+%O"6 >B
M(6FL>L4"!+C MF_LNF.3%,3>:DJ.*MG$NW0@LRMIZ@$/O(=Q,DS@J\3!-HQG
M01OBFUL@^($WD8.&+XP-U#:'OS)P2N<(BARHJBZ1WP02WM-#^-<1QCMNJ-"N
M@^<=Y*;1U!JC'^V?E8O636_A[9O$>[I6VD&)*Y8FPQ-VL6U]WG;(U,%;2T/L
MU-"4_#2B]0$\OS)\@EW'+] _MMEO4$L#!!0    ( +* K%0:WHKN.0(  .@$
M   9    >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;*54P8[3,!"][U>,@L0)
M-6G:0EG:2FU9!(=%U7:! ^+@)M,FVL23M2>;W;]G[*2A"+9"XI#$8[_W_,:9
M\:PA<V<S1(;'LM!V'F3,U648VB3#4MD!5:AE94^F5"RA.82V,JA23RJ+,(ZB
MUV&I<ATL9GYN8Q8SJKG(-6X,V+HLE7E:84'-/!@&QXF;_)"QFP@7LTH=<(O\
MI=H8B<)>)<U+U#8G#0;W\V YO%R-'=X#ON;8V),QN$QV1'<N^)3.@\@9P@(3
M=@I*/@^XQJ)P0F+COM,,^BT=\71\5/_@<Y=<=LKBFHIO><K9/)@&D.)>U07?
M4/,1NWPF3B^APOHW-"TV?AM 4ENFLB.+@S+7[5<]=N=P0IA&SQ#BCA![W^U&
MWN5[Q6HQ,]2 <6A1<P.?JF>+N5R[G[)E(ZNY\'BQK7<6[VO4#%</\K:SD$76
M+89))[%J)>)G)$9P39HS"U<ZQ?1W?BAV>D_QT=,J/BMXK<P 1L-7$$=Q?$9O
MU.<X\GJC?\T1OB]WEHU4Q(\S\N->?NSEQ_]SA.<E/A/CQ7 ,+U],X^'P'?SI
M^#;#BS65E=)/@ ^JJ!5C*JW4X[#%5;6QM9*8"9;;-=Q2E2<PG4Q Z10R9:5D
M&8U4DM Y4P+,T" H>30=5?R"1@<AV*%T7T5&-AS\[;C"D^HKT1Q\CUE(J-;<
M%F(_V[?QLJW>7_#V#I _?\BUA0+W0HT&;R8!F+:OVH"I\K6\(Y;.\,-,KB(T
M#B#K>Y*3[ *W07^Y+7X"4$L#!!0    ( +* K%3;_P_/7A<  '1'   9
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
MCBN?"JI&]8#^>ELS4:'VN !3(YW7MF/B\<<?LG@R_UG;@M.SCKO!&B9RM(?
M!1AG8MN;B,]-=#<*#J@0F#TV]BQI.AUGLO(V SX%N.D<VQU=F %M8BV?DF.1
M];M7I#"7E>#_$ @7>;,O7.-MY<PXX3NLN!#V:!./'>A0<5G ^P$?/KS0\B*M
M=_ 3O&9Q>%(<Z:I7[@G0D,N],'V='$?'5^:Z+ZY/R_LGBAA)HX8&2PJ-+N?D
MK^K+?M\QLG.E=B<-U177K.FE1&47T'PII3EV+,'X]J[_!5!+ P04    " "R
M@*Q4,J/B@" #  #9!@  &0   'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6R5
M54UOVS@0O>M7#(0>=@$A^K;DP#80-RUV#RV".&T/BSW0TL@2(I$J2<7IO]\A
M)2M>-#':BT12,V_>S'">5D<A'U6-J.&Y:[E:N[76_;7OJZ+&CJDKT2.G+Y60
M'=.TE0=?]1)9:9VZUH^"8.%WK.'N9F7/[N1F)0;=-ASO)*BAZYC\L<56'-=N
MZ)X.[IM#K<V!OUGU[( [U%_Z.TD[?T8IFPZY:@0'B=7:O0FOMXFQMP9?&SRJ
MLS683/9"/)K-W^7:#0PA;+'0!H'1ZPG?8]L:(*+Q?<)TYY#&\7Q]0O]H<Z=<
M]DSA>]%^:TI=K]W<A1(K-K3Z7AS_PBF?U. 5HE7V"<?1-EFZ4 Q*BVYR)@9=
MP\<W>Y[J<.:0!V\X1)-#9'F/@2S+6Z;99B7%$:2Q)C2SL*E:;R+7<-.4G9;T
MM2$_O?G )&_X0<$=2MC53"+\\<#V+:H_5[ZF ,;,+R:P[0@6O0$6PR?!=:W@
M R^Q_+^_3\1F=M&)W3:Z"/B)R2N(0P^B((HNX,5SMK'%BW\]VW]N]DI+NAS_
M7L!/9OS$XB=OX.]H9LJA11 5;)EJ"F"\A-NF'326\'/TUTI\,8*9T6O5LP+7
M+@VA0OF$[N:A1J<2+0T8P8,V[:.!*00O&FHDZ!J!#QU*IH6TC,Q)B5S0A;)G
M@R)Z6D#!VF)HF49STR?VY<0>3^Q[8J]L[4@3"$HB0F?[[J#I.U#7BGINVS7\
M;E4<XV9\0^?!HI_?JA?T,[//I^R<SZ1C#2]$AQXP157HA311WD$8>EF8>.DR
MI4WFY<O<6V:I<_M2!N>;G6&R9D\$=\ Q3>5-U8AC;QFG7IH%$.7>8A%Y>4X
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
MGE&P8701' 6\X>J4A4./!7X0',$+^PA#BQ<>C? (T*@'&EF@T0&@>VR(K"F
MR26SH.SS$_:&AGU).PI%G7:F:Y["S,56TJ >P9UCE3DF!V9R!<#*-JM 6668
MDS3OD^*Q5):UK* RFL@4E@RT9!A7T+68^!=-N69+66#OZ3.VB<#9C<!YL#ZW
ME=SQZ7RK07$CJE7G+I4:O7]@R=B+DL2YSZ4R)P94^6H_'GM^XCL/TO!BQW X
M#KSQ.&%'E(EZ9:)W*W/#3:.$$5C4V/27F"A>/7?17@N^$(7=W*?942?[-3O7
MCO7Y6AY2L=SBL;1O.BZ__)0$P_A7W:6C>.%DI3NDUSOC<OX&KDA!4NH*4B@7
MH(B:0]381P5T4F>@/J$$03#TPLBGK9"%?NCYT806(Q;Y7AR/Z#EB)W0;X^TA
M!SSWER@R+;8DK?ES:8LQBB-OF(3.-6BD+\JZ,5A)HD(3T 8E]X)AX-Q2^BK#
M'GG16,WD3FUMYR2*$F\2#SO(M%&*3&NL-CK4@R3T@LG$N9;5JJV^S0Y&AV3&
M<7"LP,9]@8W?76#?4$O%OE;M#Y%<W4'!*4XCV4N76&7V5=EQ3Q;=$5OHZ@5]
M)T^:K;%:#A7,_^'YCOZ_Y#I'H46&WM1;)J)*BR:S8F]MIF2T)&[4\-'(2Y+
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
MVE'+FFI8RN*>92:?>U./9+"A56%NY?X'-'I&-EXJ"^V^9%^O'4<>22MM)&_
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
M8)P!W9=:V_W&$?1#._L-4$L#!!0    ( +* K%0J38V5%P,  &(+   9
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
M,&KG0.>%4G;8N #C4$__ %!+ P04    " "R@*Q4N2<<0!H#  "J"   &0
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
M]>R&UK]=8CY']7WH&\)N$?C)#N>TQ!D=P1G#I11FI>&M2#']4]^GF*O HX?
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
M$\SSN1!Z=V,-5.<_XW\ 4$L#!!0    ( +* K%0D$^$2; (  #<&   9
M>&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;(U5WT_;,!#^5ZQHDT#:FE]MZ% :
MB;9,XX$)P=@>ICVXR:6Q<.S.OM#RWV,[:590R7A)?/9]WWUW\5W2K50/N@)
MLJNYT#.O0MR<^[[.*ZBI'LD-"'-22E53-*9:^WJC@!8.5',_"H+$KRD37I:Z
MO1N5I;)!S@3<***;NJ;J:0Y<;F=>Z.TW;MFZ0KOA9^F&KN$.\'YSHXSE]RP%
MJT%H)@514,Z\B_!\D5A_Y_"3P58?K(G-9"7E@S6NBID76$' (4?+0,WK$1;
MN24R,OYVG%X?T@(/UWOVKRYWD\N*:EA(_HL56,V\J4<**&G#\59NOT&7S\3R
MY9)K]R3;UG<<>R1O-,JZ QL%-1/MF^ZZ.AP #,]Q0-0!HM> \1N N /$+M%6
MF4MK29%FJ9);HJRW8;,+5QN'-MDP8;_B'2ISR@P.LRN1RQK(#[H#34Z6@)1Q
M3;Y3I:BM[RGY3.[OEN3DPVGJHXEG47[><<];[N@-[IA<2X&5)I>B@.(EWC<Z
M>['17NP\&B2\IFI$XO 3B8(H.J)G\7YX." G[FL7.[[XO[4C2Z9S+G6C@/R^
M6&E4YGK^&0@Q[D.,78CQ< @T(6!G.E<#68& DN&QS]%R)8[+MN]C%L;3))B>
MI?[C89F.^'V93I)QT/N]$#OIQ4X&Q5Z6);BN='K-!8)C(H<YPF"4!!\'*I?T
M8I)WBBFA $4YT4BQ0:F>!N4-LT;A*#@NSS_HP1K4VHTF37+9"&QO>+_;3[\+
MU_2O]N=F*K9#[!]-.U+-_5TSH0F'TE &HS-32M6.J=9 N7&=OI)HYH9;5F:R
M@[(.YKR4$O>&#=#_*[)G4$L#!!0    ( +* K%0+2NWHNP(  -X&   9
M>&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;(U5VV[;, S]%<'80PML\267#D42
M(&DZK$.[!<VZ/11]4&PF-BI+GD0WS=^7DATW79V@>8A%F>?PD)3HX4;I1Y,"
M('O.A30C+T4LSGW?Q"GDW'14 9+>K)3..9*IU[XI-/#$@7+A1T$P\'.>26\\
M='MS/1ZJ$D4F8:Z9*?.<Z^T4A-J,O-#;;=QFZQ3MAC\>%GP-"\"[8J[)\AN6
M),M!FDQ)IF$U\B;A^6Q@_9W#GPPV9F_-;"9+I1ZM<96,O, * @$Q6@9.CR>X
M "$L$<GX5W-Z34@+W%_OV+^YW"F7)3=PH<3?+,%TY'WU6 (K7@J\59OO4.?3
MMWRQ$L;]LTWM&W@L+@VJO :3@CR3U9,_UW78 Q!/.R"J ='_@-X!0+<&=#\*
MZ-6 GJM,E8JKPXPC'P^UVC!MO8G-+EPQ'9K2SZ1M^P(UO<T(A^-;$!PA87.N
M<<M^:RX-=QTQ[&0&R#-AV$^N-;?M.65?V.5S+$I#!KO.8FH_L,E: ]!)0'9_
M _D2] .YS72'3;7=7'!$T*L,1++O<+>8L9-/IT,?*0NKQ8]KQ=-*<71 <<AN
ME,34L$N90/(6[U/V30FB70FFT5'"'UQV6#?XS*(@/&O1<W$<?L,IU6YHX5'4
M I]]'!X>R:;;-+3K^+H'^.@""+Y45</8A#HGUU5WN$S>V+\P!<TPY9*]!=U?
M$R>[0LC-PQ%%O491SRGJ'5 TB6-=TA'3:LL%9F#:>EY1#!R%'55/X[/ _H;^
M4TOH?A.Z?S3TG&]=JC0>7\.S@M+.[1EJ$])_)R0\K&/0Z!@<U3$K@:&B,5E=
MML)>MK:3-G@7_#5P=9C>>X11BSY_;R+DH-=NLAH6JU)B-1R:W69X3]S,\E_=
MJ\E/!W2=T3@0L")HT#FC"NEJFE8&JL+-EZ5"FE9NF=('"+1UH/<KI7!GV #-
M)VW\ E!+ P04    " "R@*Q4+->!4"\"   T!0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970T-BYX;6R%E%%OVC 0Q[^*%>VAE382 J2H"I%*Z;1)JX;*NCV;
MY$*L.G9F']!]^YV=D+$-Z$OLL^]^_SL[YW2OS8NM )"]UE+965 A-K=A:/,*
M:FX'N@%%.Z4V-4<RS2:TC0%>^*!:AG$4)6'-A0JRU*\M39;J+4JA8&F8W=8U
M-[_F(/5^%@R#P\*3V%3H%L(L;?@&5H#/S=*0%?:40M2@K-"*&2AGP=WP=IXX
M?^_P7<#>'LV9JV2M]8LS/A>S('()@80<'8'3L(-[D-*!*(V?'3/H)5W@\?Q
M_^AKIUK6W,*]EC]$@=4LF :L@))O)3[I_2?HZIDX7JZE]5^V;WU'2<#RK45=
M=\&402U4._+7[AR. N+AF8"X"XA]WJV0SW+!D6>IT7MFG#?1W,27ZJ,I.:'<
MI:S0T*Z@.,Q6=,O%5@+3)?L"5!Y[>*4+I_%J <B%M-=IB"3DW,.\@\Y;:'P&
M.F*/6F%EV8,JH/@[/J0$^RSC0Y;S^"+PD9L!&PW?LSB*X^?5@EV]N[Z '?7%
MCSQV= ;K"[870.,>-/:@\1G0UP8,1Z$V3/HSS+5%>^K<6DSB,:Y?=MDTF4RG
M:;@[H3[IU2<7U5>5-O@!P=1OR;><R9'\31)-H]/R22^?7)3_II'+MY23_PH?
M)G&2_%MY>/0GUV VOE\M8;<*VY^Z7^V?A+NV$_ZXM^\)_3,;H2PE5E)H-+BA
MLDW;HZV!NO%]L=9(7>:G%3UK8)P#[9=:X\%P OU#F?T&4$L#!!0    ( +*
MK%17WHG(!@,  /$)   9    >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;)56
M76_:,!3]*U:TAU;:FM@A!! @K:!IDUH)E75[-LD%K#IQ9CO0_OO93AK8"*&\
M0!SG?-SKY-CCO9 O:@N@T6O&<S7QMEH7(]]7R18RJNY$ ;F960N946V&<N.K
M0@)-'2CC/@F"OI]1EGO3L;NWD-.Q*#5G.2PD4F664?EV#USL)Q[VWF\\L<U6
MVQO^=%S0#2Q!/Q<+:49^PY*R#'+%1(XDK"?>5SR:X= "W!._&.S5T36RI:R$
M>+&#'^G$"ZPCX)!H2T'-WPYFP+EE,C[^U*1>HVF!Q]?O[-]<\::8%54P$_PW
M2_5VX@T\E,*:EEP_B?UWJ N*+%\BN'*_:%\]&Q,/):72(JO!QD'&\NJ?OM:-
M. +@WAD J0'DHX"P!KC.^94S5]:<:CH=2[%'TCYMV.R%ZXU#FVI8;I=QJ:69
M90:GITOS7J0E!R36Z)'J4C+-0"'3X)G("IJ_H0<P74(/C*X8KR9OYJ IX^H6
M?4'/RSFZ^70[]K4Q8RG]I!:^KX3)&>%'*N]0B#\C$A#2 I]UP^>0-'#\+]PW
M+6CZ0)H^$,<7GN%S5:H.HK A"AU1[PR1+0?=2+"?4 JRM3,50]\QV.]L-R4$
MAU$P]G<MRKU&N7=).6Q3JU#1D5H8A$$T;%>+&K7HDEJO32TZ48N"..ZUB_4;
ML?XEL:A-K!-E$W"D"IK Q#,1IT#NP)NBCC6.&SOQ)3O]-CN=J.OM#!H[@TX[
M/[=@$GRM0;:9ZL1>;VK8F!IVFQ*:<L1=>!3TS22_5FWVAJ?O2QSA0=C^PN#@
MD&M!I_X#*#5"+"M*#2EBN>D.*-V:4\&)!=PGF)QQ<)2LN-/!PO8SUVA'>>GR
MU>R]DFJ6;^JV\$.FMOK"IZV)!L,8GS%VB#I,/M":I)32VBN$M!MJJP-RXH ,
M0C(\1$<=U9UZU[]C^!"VN#MM'T2^^6*6-NLLHR5OXZ@?D__+Z-2ZH@S_:#^V
MAR&SUVU8KLRRKPUS<!>;CLKJ?%$-M"C<%KT2VFSX[G)KSF0@[0-F?BV$?A_8
M7;\YY4W_ E!+ P04    " "R@*Q4#&W ZEL"  ##!0  &0   'AL+W=O<FMS
M:&5E=',O<VAE970T."YX;6R-5&UOVC 0_BNG:)-::2(07HJJ$*G IE5:503J
M]MDD%V+5L3/;@?;?]^Q QB:(]B7VV?<\]]PY=_%!Z5=3(%IX*X4TLZ"PMKH/
M0Y,66#+34Q5*NLF5+IDE4^]"4VEDF0>5(HSZ_4E8,BZ#)/9G*YW$JK:"2UQI
M,'59,OT^1Z$.LV 0G [6?%=8=Q F<<5VN$'[4JTT66'+DO$2I>%*@L9\%CP,
M[N<3Y^\=?G(\F+,]N$RV2KTZXS&;!7TG" 6FUC$P6O:X0"$<$<GX?>0,VI .
M>+X_L7_SN5,N6V9PH<0OGMEB%DP#R#!GM;!K=?B.QWS&CB]5PO@O'!K?R5T
M:6VL*H]@4E!RV:SL[5B',T TN *(CH#(ZVX">95+9ED2:W4 [;R)S6U\JAY-
MXKATC[*QFFXYX6RRH5?.:H&@<GBV!6IXE,U3NYJM43"+&5@%SQ5J.I0[^(%4
M!;A9HF5<F-LXM*3#L87I,>:\B1E=B3F$)R5M8>"KS##[&Q^2_C:)Z)3$/.HD
M?&*Z!\/!%XCZ4?2R6<+-I]L.VF%;FZ&G'5ZA]8F:#J)12S3R1*,K1 MF"J@8
MSX!*"ZJMI/ !@,M4U%0)VIQ=I@Z44].82Q5N DY\0-=X^V0P'DVG41SN+P@=
MMT+'G4+7Z/JXE086=>G^C'\E7U+4S1S!.S+=5<Q)JW'2R;3D)E6UM$"*\'_%
M=5,.>X/^YTO2PK/&*E'O_/@PX.,W/=:>MA/JH6G,/^[->*-_=,>E(8TY0?N]
M.ZJ7;D9&8UA5^3;=*DM-[[<%35G4SH'N<Z7LR7 !VKF=? !02P,$%     @
MLH"L5*'.1$08 @  !P4  !D   !X;"]W;W)K<VAE971S+W-H965T-#DN>&UL
MA91=;YLP&(7_BH5VT4E33<Q'FHH@+8VJ35JEJ%FW:R>\!*LV9K8)[;^?;0B*
M6M+>@+_.><X+MK-.JF== 1CT(GBMET%E3'.+L=Y7(*B^E@W4=J:42E!CN^J
M=:. %EXD."9AF&)!61WDF1_;J#R3K>&LAHU"NA6"JM<5<-DM@UEP&GADA\JX
M 9QG#3W %LQ3LU&VAT>7@@FH-9,U4E N@^^SVU7JUOL%?QAT^JR-7"4[*9]=
MYV>Q#$(7"#CLC7.@]G6$.^#<&=D8_P;/8$0ZX7G[Y'[O:[>U[*B&.\G_LL)4
MR^ F0 64M.7F478_8*@G<7Y[R;5_HJY?FY  [5MMI!C$-H%@=?^F+\-W.!.0
MV04!&03$Y^Y!/N6:&IIG2G9(N=76S35\J5YMP[':_92M47:669W)M_8O%RT'
M)$MTWYI6 7I@-1.M0+_ 5HLV]-7^ Z/1U1H,95Q_S;"Q8"?'^P&RZB'D N2!
MJFL4S;XA$A+RM%VCJR]O7+"-/68G8W;B;:,+MCZ@_L H&HTB;Q1?,'*QIJKJ
M5:E7N=U]S,DB2A9)AH\3M'BDQ9_1HBE:KTK.:%$8A<EBFI:,M.0S6CQ%2][1
MDG ^CZ=AZ0A+/X3]EH9RQ/W&:8:-,P5/WWW8-)['Y.8-'9_M:W=%V'UT8+6V
M@-(*P^NYC:_Z8]=WC&S\5M])8P^.;U;VI@+E%MCY4DISZKC3,]Y]^7]02P,$
M%     @ LH"L5!UX2U?Y 0  X@,  !D   !X;"]W;W)K<VAE971S+W-H965T
M-3 N>&UL?5--;]LP#/TK@M%#"PR18R_=5C@&FF;#=N@0).AV&'90;"86(EDN
M1<=M?_TDV3$R8-G%)B6^Q\</99W!@ZT B+UH5=MY5!$U=YS;H@(M[,0T4+N;
MG4$MR+FXY[9!$&4 :<63.+[E6L@ZRK-PML(\,RTI6<,*F6VU%OBZ &6Z>32-
M3@=KN:_('_ \:\0>-D!/S0J=QT>64FJHK30U0]C-H_OIW2+U\2'@AX3.GMG,
M5[(UYN"=;^4\BKT@4%"09Q#N=X0'4,H3.1G/ V<TIO3 <_O$_B74[FK9"@L/
M1OV4)57SZ&/$2MB)5M':=%]AJ&?F^0JC;/BRKH^=?8I8T5HR>@ [!5K6_5^\
M#'TX R33"X!D "1!=Y\HJ%P*$GF&IF/HHQV;-T*I >W$R=H/94/H;J7#4;ZI
M! );0]-B4;GJV K-'H5FUTL@(95EWP6B\*V[85=,UNQ1*N7Z:3-.+K]GX<60
M:]'G2B[D>A0X8>GT'4OB)'G:+-GUU<W?+-RI'TM(QA*20)M>H/W\W$IZ9;_N
MMY;03?GW?SC3D3,-G.\OM85,<7!+-[:E&=HB6JH,RC<HF="FK>E?;>BY;P.W
M?Q7'/(TS?CS7P\]&YK??]68O:\L4[!PHGGR810S[C>H=,DV8XM:0VXE@5NX1
M OH =[\SADZ.7XSQ6>=_ %!+ P04    " "R@*Q4^XB8V! #   P$0  #0
M 'AL+W-T>6QE<RYX;6S=6&UKVS 0_BO&':.%4<?QZL5K$M@"A<$V"NV'?2M*
M+#L"6?)DN4OZZZ>3'.>ENM+UPY;.(;5TC^ZY1W?GRF3<Z#6G-TM*=;"JN&@F
MX5+K^F,4-8LEK4AS+FLJ#%)(51%MIJJ,FEI1DC?@5/%H.!BD4468"*=CT597
ME6Z"A6R%GH1);PK<[4L^">/T?1@XNIG,Z22\.WW[LY7Z\DW@[B?O3DX&=V>7
MA_93"YR%D9?TXAFDYX,!3@P@1IX^C_PI;DL==0F:C@LI]O,$!A.;5#2X)WP2
MS@AG<\7 JR 5XVMG'H)A(;E4@38%,F)BL#0/#H[=#&K7\51,2&5CNPCN[[Q;
M?@!L9B"0<=X+'(;.,!W71&NJQ)69V,76^ @*NO'MNC8*2T76\? BW#K8FPDR
MERJGJ@\3AQO3=,QI 7(4*Y=PU[*. -1:5F:0,U)*0:R&C4<W,+0+ROD--/:/
M8H][5>Q4=0 U%?W0".J&CL9-@'^7S7'OT@Y>Q!O4[%[JSZW9CK!S:!9ZK6C!
M5G:^*GH!&'N,LY.ZYNM/G)6BHF[SSPXX'9.-7["4BCV8:- J"V.@*@SNJ=)L
ML6OYI4A]2U=ZTTZK M<\?(6:_VZ>2RJH(GQ7M.G]8\[RBQ4G'_Z59/M?Y5"P
M5V-W6AV[R(O7(#(]?I%)=I0:H^[4V3G:]@ZVWAK "\0D_ XO*WP;-)BWC&LF
MNMF2Y3D5C\XW0Z_)W+P.[O&;]3DM2,OU;0].PNWX&\U96V7]JFM(1+=J._X*
MVXO3_NW%Q&(BIRN:S[JI*N=V&)B!B=I=X'"(7-G+CV ^#O,C@&%Q, 68C_/"
MXOQ/^QFA^W$8IFWD14:HSPCU<5X^9&8_6!R_3V8N_TZS+$G2%,OH;.95,,/R
MEJ;P];-AVL #BP.1_BS7>+7Q#GFZ#[":/M4AV$[Q3L1VBN<:$'_>P"/+_-7&
MXH '5@6L=R"^/P[TE-\G2:"JF#;L"<:1+,,0Z$5_CZ8IDIT4/O[Z8$])DF29
M'P',KR!), 2>1AS!%( &#$D2>PX>G$?1YIR*MK^13'\#4$L#!!0    ( +*
MK%27BKL<P    !,"   +    7W)E;',O+G)E;'.=DKENPS ,0'_%T)XP!] A
MB#-E\18$^0%6H@_8$@6*19V_K]JE<9 +&7D]/!+<'FE [3BDMHNI&/T04FE:
MU;@!2+8ECVG.D4*NU"P>-8?20$3;8T.P6BP^0"X99K>]9!:G<Z17B%S7G:4]
MVR]/06^ KSI,<4)I2$LS#O#-TG\R]_,,-47E2B.56QIXT^7^=N!)T:$B6!::
M1<G3HAVE?QW']I#3Z:]C(K1Z6^CY<6A4"H[<8R6,<6*T_C6"R0_L?@!02P,$
M%     @ LH"L5$;/CVBF!   7B$   \   !X;"]W;W)K8F]O:RYX;6S%FEMO
MXC@4@/^*E:>NM+N0"YV9:ABI VVWTG1 T.T^CDQBP&IBL[9#+[]^CI/2/9F6
MHWTQ/$&<X'PYL<_G"Y\?M+E?:'W/'JM2V6&T=FYSUNO9?"TJ;O_4&Z'@S%*;
MBCLX-*N>W1C!"[L6PE5E+^GW3WL5ERKZ\GE7U]3T\(%V(G=2*RCT!7=2/-C_
MSOM#MI56+F0IW=,P:KZ7(F*55+*2SZ(81OV(V;5^^$L;^:R5X^4\-[HLAU'<
MGK@3QLG\3?'<0][RA6U*'%_,.( ,H],^5+B4QKKFBJ9^#HQ; 1>W1[73E[)T
MPHRY$U=&UQNI5KX:>(H>>HPF#KO/-HAGYO^$42^7,A=CG=>54*Z-HQ&E!U1V
M+3<V8HI78AB-]%88_SQP@^NB?38'4"A2YDS""7-=-'@A4935I2S@[@7[RDNN
M<L&:$%IV\K="D D!F1P1\D>"(%,",CT@Y-Q#^!]8II=LLNF\[HR S(X&.>)V
MC2 '!.3@:)!SIW,$>4I GH:%G$ 7WOI$QY5ODU8V?%,C+/R..P3Y@8#\$!9R
M7E<5-T]-Y.1*2?@95XZ=Y[FNE9,(\B,!^3$LY-?:2B6L92-=+:1J+T!HGPBT
M3V'1KK0N'F19-B_Y&MZK6GD =FXMY!Z<P?M4"N^'I;SDTK [7M:"W0AN:]/V
M%XQ'&B:P8F9B*U0M, [EDCBP3"ZX42!^RZ;"@$2XZ9!1 HD#&\0GM_L_()=
MVH.^ #79YB+,1[DC#BR/:Y7K2K!;_B@ZC8M211S8%3-?"/&:<N.>V*WA$+/\
MUPP24YZ( XOB&W3);KPH(<2!C0#MJI*N]:E/:N!:![U!J%QV(2DAQ(&-T/1*
M-A.;VN1KB!YH5:\,KS ?984XL!;F]<**?VNXB%UL?TFU"66")+ )2-]W!LH)
M980DL!%HK3*,2<XZ IMBCU?9"4PIRTYO22AM)(&U\>+7'=9OF(O211)8%V]%
M^RXB98\DL#WV&?<%%&-2"DD.HI!WHT>Y)#GF[.)'BC$IFR3'F%^PD[%P7);=
M;$-))0DM%:BCJ"$+0CA?$^2.$K_SE#),&MHPB/)-YOX=!S.E#),&-@S&1&G\
M13 <8U*&20,;!F..UA!,Z.52O1)C3')E*_3$!&/N!HS.?[6RZ"QMI91PTL#"
M0?EHY\3%$[L2?NRX6>/5CI223AI:.BB:8[$4QH!]7B4^QIB4=-+ TL&8?GTK
M;T9K8UG6?KYU@3$I":6!)?3>*&.7VK_S3MND))2&GM*@:$XVS1CCW&]/2)BU
M B_&I"24'E!"D]H!ARH@NM \K3,2+[UFE(6R UKH'VY,.^QX#2?&I"R4'=!"
M,Y%K&",]-TO:?M2YP!;** MEH2VT=Q3<="2,25DH"VPAO/S4Z>.&^WT^C$GN
ML 2VT/X5J08:8U(6R@YHH69^P2X>_9M_29\8D[)0=D +W7!7&^DDO'YHG+ZE
M=C I"V6AIT(X;[HUJ.A:M17Y?C3#F)2%L@-:Z+*&: IVX[?DZZII QB3LE 6
MVD)[UO_>)J0!9:%!8Z'>;C^_$$N8!Q;?X186RG->YE/#_$>[)Y$-_*+BLB[+
M$91-U#?-B]W? W9_;?CR$U!+ P04    " "R@*Q4.(-O)L0!   -'@  &@
M 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QSS=D[;L) %(7AK2 O(,-]F(0(
MJ-+01MF 18:'8K#EF2BP^R!2D(-2I$%S*FML^?JO/EOCV6MLF[SK#FF[Z]/H
MN&\/:5YM<^Z?0TBK;=PWZ:'KX^%\9=T-^R:?E\,F],WJH]G$H./Q) R_9U2+
MV>^9H[=3'_\SL5NO=ZOXTJT^]_&0_Q@<OKKA(VUCS-7HK1DV,<^K<&ROIU.X
M'.3A/+D:+=_GU;!\ERJ4#E((TO)!!D%6/L@AR,L'U1!4EP^:0-"D?- C!#V6
M#WJ"H*?R05,(FI8/DC'*."9(NL&:0&M!KH7 :T&PA4!L0;*%P&Q!M(5 ;4&V
MA<!M0;B%0&Y!NH7 ;D&\A4!O1;V50&]%O95 ;[WYV";06U%O)=!;46\ET%M1
M;R706U%O)=!;46\ET%M1;R706U%O)=#;4&\CT-M0;R/0VU!O(]#;;C9+"/0V
MU-L(]#;4VPCT-M3;"/0VU-L(]#;4VPCT-M3;"/1VU-L)]';4VPGT=M3;"?1V
MU-L)]/:;S6X"O1WU=@*]'?5V KT=]78"O1WU=@*]'?5V KUKU+N^I]XIG]J8
MKCT_:WS^/:G.YWOC]?&7Y<])?%_4%YP#_/U=? -02P,$%     @ LH"L5("$
M^)W  0   !X  !,   !;0V]N=&5N=%]4>7!E<UTN>&ULS=G);L(P% 707T'9
M5L1X@ X"-FVW+8O^@)L\("*)+=M0^/LZ89!:T:B(2KV;1(GM=U]LZ6PR?MM9
M\KUM5=9^DBQ#L ^,^6Q)E?:IL53'D;EQE0[QT2V8U=E*+XB)P6#$,E,'JD,_
M-#62Z?B)YGI=AM[S-K[VA:DGB:/2)[W'_<0F:Y)H:\LBTR&.LTV=?TOI'Q+2
MN+*=XY>%]3=Q0L+.)C0C/P<<UKUNR+DBI]Y,N_"BJSB+;4OFPZXDGW:7.-.C
MF<^+C'*3K:NX)/76D<[]DBA49;HO>M.='.(.T_[*K\YORW0%QIDS9ZR/)^;H
M\KCCD32K^S86(A>*[D\\)<;25W\?-:>=4_[+[+B]'\:MVO/PK+U=O\=?S_A4
M_\(^!$@?$J0/!=+'$*2/$4@?MR!]W('T<0_2!Q^@-((B*D<AE:.8RE%0Y2BJ
M<A16.8JK' 56CB*K0)%5H,@J4&05*+(*%%D%BJP"15:!(JM D56@R"I19)4H
MLDH4626*K!)%5HDBJT215:+(*E%DE2BR*A19%8JL"D56A2*K0I%5H<BJ4&15
M*+(J%%D5BJS#_Y3UW9C57_^3;.YII8OZF,_:'[_33U!+ 0(4 Q0    ( +*
MK%0'04UB@0   +$    0              "  0    !D;V-0<F]P<R]A<' N
M>&UL4$L! A0#%     @ LH"L5$(5,;GN    *P(  !$              ( !
MKP   &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ LH"L5)E<G",0!@
MG"<  !,              ( !S $  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"
M% ,4    " "R@*Q4N<2HZF,%  ":%@  &               @($-"   >&PO
M=V]R:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ LH"L5$4(&L@V!P
M6AX  !@              ("!I@T  'AL+W=O<FMS:&5E=',O<VAE970R+GAM
M;%!+ 0(4 Q0    ( +* K%30C0VIU@(  (()   8              " @1(5
M  !X;"]W;W)K<VAE971S+W-H965T,RYX;6Q02P$"% ,4    " "R@*Q4-NUM
M6X@%   7%   &               @($>&   >&PO=V]R:W-H965T<R]S:&5E
M=#0N>&UL4$L! A0#%     @ LH"L5#P T'@Z!P  +1T  !@
M ("!W!T  'AL+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    ( +*
MK%3=DR910P4  ((9   8              " @4PE  !X;"]W;W)K<VAE971S
M+W-H965T-BYX;6Q02P$"% ,4    " "R@*Q4_<?9]Z$&  #\#@  &
M        @('%*@  >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#%
M  @ LH"L5/V:^SP %@  G3T  !@              ("!G#$  'AL+W=O<FMS
M:&5E=',O<VAE970X+GAM;%!+ 0(4 Q0    ( +* K%3+B<^%ZP(  #8&   8
M              " @=)'  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q02P$"
M% ,4    " "R@*Q438:D=0L$  ##"0  &0              @('S2@  >&PO
M=V]R:W-H965T<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( +* K%1QS+&!P04
M &40   9              " @35/  !X;"]W;W)K<VAE971S+W-H965T,3$N
M>&UL4$L! A0#%     @ LH"L5&?+^V5& P  ^ 8  !D              ("!
M+54  'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4    " "R@*Q4
M]W>,B58#  !"!P  &0              @(&J6   >&PO=V]R:W-H965T<R]S
M:&5E=#$S+GAM;%!+ 0(4 Q0    ( +* K%1GZ<4CW08   H3   9
M      " @3=<  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#%
M  @ LH"L5(=(1'Q+ @  Z00  !D              ("!2V,  'AL+W=O<FMS
M:&5E=',O<VAE970Q-2YX;6Q02P$"% ,4    " "R@*Q40MPE"5\#  !O!P
M&0              @('-90  >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM;%!+
M 0(4 Q0    ( +* K%0&JQW4P@0  .P*   9              " @6-I  !X
M;"]W;W)K<VAE971S+W-H965T,3<N>&UL4$L! A0#%     @ LH"L5)D^FX*6
M!   '@H  !D              ("!7&X  'AL+W=O<FMS:&5E=',O<VAE970Q
M."YX;6Q02P$"% ,4    " "R@*Q498#!KGL"  !X!0  &0
M@($I<P  >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    ( +*
MK%0:WHKN.0(  .@$   9              " @=MU  !X;"]W;W)K<VAE971S
M+W-H965T,C N>&UL4$L! A0#%     @ LH"L5-O_#\]>%P  =$<  !D
M         ("!2W@  'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"% ,4
M    " "R@*Q4B8ZJGI0#  #B"   &0              @('@CP  >&PO=V]R
M:W-H965T<R]S:&5E=#(R+GAM;%!+ 0(4 Q0    ( +* K%3K- #XSP0  %T.
M   9              " @:N3  !X;"]W;W)K<VAE971S+W-H965T,C,N>&UL
M4$L! A0#%     @ LH"L5)<SQXU2 P  AP<  !D              ("!L9@
M 'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    " "R@*Q4,J/B
M@" #  #9!@  &0              @($ZG   >&PO=V]R:W-H965T<R]S:&5E
M=#(U+GAM;%!+ 0(4 Q0    ( +* K%3A,I[K# 4  %(.   9
M  " @9&?  !X;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#%     @
MLH"L5 '65/=&!   90L  !D              ("!U*0  'AL+W=O<FMS:&5E
M=',O<VAE970R-RYX;6Q02P$"% ,4    " "R@*Q4V8MC@@$%  #J$P  &0
M            @(%1J0  >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+ 0(4
M Q0    ( +* K%0-YXYXNP(  )8'   9              " @8FN  !X;"]W
M;W)K<VAE971S+W-H965T,CDN>&UL4$L! A0#%     @ LH"L5%K;\D19 @
M:04  !D              ("!>[$  'AL+W=O<FMS:&5E=',O<VAE970S,"YX
M;6Q02P$"% ,4    " "R@*Q4^XRO(1H$  !^$   &0              @($+
MM   >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( +* K%0-
MV5Q]-00  ,T6   9              " @5RX  !X;"]W;W)K<VAE971S+W-H
M965T,S(N>&UL4$L! A0#%     @ LH"L5$:A;V)] @  P 4  !D
M     ("!R+P  'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6Q02P$"% ,4
M" "R@*Q4*DV-E1<#  !B"P  &0              @(%\OP  >&PO=V]R:W-H
M965T<R]S:&5E=#,T+GAM;%!+ 0(4 Q0    ( +* K%05B0);(@,  '0+   9
M              " @<K"  !X;"]W;W)K<VAE971S+W-H965T,S4N>&UL4$L!
M A0#%     @ LH"L5'9BNR!T @  X 4  !D              ("!(\8  'AL
M+W=O<FMS:&5E=',O<VAE970S-BYX;6Q02P$"% ,4    " "R@*Q4N2<<0!H#
M  "J"   &0              @('.R   >&PO=V]R:W-H965T<R]S:&5E=#,W
M+GAM;%!+ 0(4 Q0    ( +* K%2^>FU$=P(  -D&   9              "
M@1_,  !X;"]W;W)K<VAE971S+W-H965T,S@N>&UL4$L! A0#%     @ LH"L
M5-H(%QXN!   -!0  !D              ("!S<X  'AL+W=O<FMS:&5E=',O
M<VAE970S.2YX;6Q02P$"% ,4    " "R@*Q4[-9C?4X#  " "P  &0
M        @($RTP  >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+ 0(4 Q0
M   ( +* K%13GG%[[P,  '(1   9              " @;?6  !X;"]W;W)K
M<VAE971S+W-H965T-#$N>&UL4$L! A0#%     @ LH"L5 '9L^P8 P  L@H
M !D              ("!W=H  'AL+W=O<FMS:&5E=',O<VAE970T,BYX;6Q0
M2P$"% ,4    " "R@*Q4YQF@K&X$   +$@  &0              @($LW@
M>&PO=V]R:W-H965T<R]S:&5E=#0S+GAM;%!+ 0(4 Q0    ( +* K%0D$^$2
M; (  #<&   9              " @='B  !X;"]W;W)K<VAE971S+W-H965T
M-#0N>&UL4$L! A0#%     @ LH"L5 M*[>B[ @  W@8  !D
M ("!=.4  'AL+W=O<FMS:&5E=',O<VAE970T-2YX;6Q02P$"% ,4    " "R
M@*Q4+->!4"\"   T!0  &0              @(%FZ   >&PO=V]R:W-H965T
M<R]S:&5E=#0V+GAM;%!+ 0(4 Q0    ( +* K%17WHG(!@,  /$)   9
M          " @<SJ  !X;"]W;W)K<VAE971S+W-H965T-#<N>&UL4$L! A0#
M%     @ LH"L5 QMP.I; @  PP4  !D              ("!">X  'AL+W=O
M<FMS:&5E=',O<VAE970T."YX;6Q02P$"% ,4    " "R@*Q4H<Y$1!@"   '
M!0  &0              @(&;\   >&PO=V]R:W-H965T<R]S:&5E=#0Y+GAM
M;%!+ 0(4 Q0    ( +* K%0=>$M7^0$  .(#   9              " @>KR
M  !X;"]W;W)K<VAE971S+W-H965T-3 N>&UL4$L! A0#%     @ LH"L5/N(
MF-@0 P  ,!$   T              ( !&O4  'AL+W-T>6QE<RYX;6Q02P$"
M% ,4    " "R@*Q4EXJ[',     3 @  "P              @ %5^   7W)E
M;',O+G)E;'-02P$"% ,4    " "R@*Q41L^/:*8$  !>(0  #P
M    @ $^^0  >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ LH"L5#B#;R;$
M 0  #1X  !H              ( !$?X  'AL+U]R96QS+W=O<FMB;V]K+GAM
M;"YR96QS4$L! A0#%     @ LH"L5("$^)W  0   !X  !,
M ( !#0 ! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     #H .@#-#P  _@$!
#

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>92</ContextCount>
  <ElementCount>286</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>37</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>5</UnitCount>
  <MyReports>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>00000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>00000002 - Statement - Consolidated Balance Sheets (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/BalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/BalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Unaudited) (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>00000004 - Statement - Consolidated Statements of Operations (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/StatementsOfOperations</Role>
      <ShortName>Consolidated Statements of Operations (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/StatementsOfCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>00000006 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/StatementsOfStockholdersEquity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>00000007 - Disclosure - Overview and Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/OverviewAndBasisOfPresentation</Role>
      <ShortName>Overview and Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>00000008 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>00000009 - Disclosure - Business Combinations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/BusinessCombinations</Role>
      <ShortName>Business Combinations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>00000010 - Disclosure - Goodwill and Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/GoodwillAndIntangibleAssets</Role>
      <ShortName>Goodwill and Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>00000011 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>00000012 - Disclosure - Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Revenue</Role>
      <ShortName>Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>00000013 - Disclosure - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/EarningsPerShare</Role>
      <ShortName>Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>00000014 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Stock-basedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>00000015 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/IncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>00000016 - Disclosure - Related Party Transactions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/RelatedPartyTransactions</Role>
      <ShortName>Related Party Transactions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>00000017 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Leases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>00000018 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/CommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>00000019 - Disclosure - Share Repurchase Program</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ShareRepurchaseProgram</Role>
      <ShortName>Share Repurchase Program</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>00000020 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>21</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>00000022 - Disclosure - Goodwill and Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables</Role>
      <ShortName>Goodwill and Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/GoodwillAndIntangibleAssets</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>00000023 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/FairValueMeasurements</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>00000024 - Disclosure - Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/RevenueTables</Role>
      <ShortName>Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/Revenue</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>00000025 - Disclosure - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/EarningsPerShareTables</Role>
      <ShortName>Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/EarningsPerShare</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>00000026 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Stock-basedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/Stock-basedCompensation</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>00000027 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/Leases</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative</Role>
      <ShortName>Summary of Significant Accounting Policies (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>00000029 - Disclosure - Business Combinations (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative</Role>
      <ShortName>Business Combinations (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/BusinessCombinations</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>00000030 - Disclosure - Schedule of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfGoodwillDetails</Role>
      <ShortName>Schedule of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails</Role>
      <ShortName>Schedule of Intangible Assets, Net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails</Role>
      <ShortName>Schedule of Fair Value Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails</Role>
      <ShortName>Schedule of Changes in Fair Value Measurement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails</Role>
      <ShortName>Schedule of Contingent Consideration Common Stock and Warrants (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails</Role>
      <ShortName>Summary of Revenue by Geographic Area (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>00000036 - Disclosure - Schedule of Deferred Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails</Role>
      <ShortName>Schedule of Deferred Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails</Role>
      <ShortName>Schedule of Basic and Diluted Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>00000038 - Disclosure - Earnings Per Share (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/EarningsPerShareDetailsNarrative</Role>
      <ShortName>Earnings Per Share (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/EarningsPerShareTables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>00000039 - Disclosure - Schedule of Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfOptionActivityDetails</Role>
      <ShortName>Schedule of Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails</Role>
      <ShortName>Schedule of Outstanding Restricted Stock Units and Related Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>00000041 - Disclosure - Schedule of Warrant Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails</Role>
      <ShortName>Schedule of Warrant Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails</Role>
      <ShortName>Schedule of Recognized Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>00000043 - Disclosure - Stock-Based Compensation (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative</Role>
      <ShortName>Stock-Based Compensation (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/Stock-basedCompensationTables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>00000044 - Disclosure - Income Taxes (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/IncomeTaxesDetailsNarrative</Role>
      <ShortName>Income Taxes (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/IncomeTaxes</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>00000045 - Disclosure - Related Party Transactions (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative</Role>
      <ShortName>Related Party Transactions (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/RelatedPartyTransactions</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>00000046 - Disclosure - Schedule of Lease Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails</Role>
      <ShortName>Schedule of Lease Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails</Role>
      <ShortName>Schedule of Maturities on Company Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails</Role>
      <ShortName>Schedule of Other Information Related to Operating Lease (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails</Role>
      <ShortName>Schedule of Future Minimum Lease Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="form10-q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>00000050 - Disclosure - Share Repurchase Program (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative</Role>
      <ShortName>Share Repurchase Program (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://codiagnostics.com/role/ShareRepurchaseProgram</ParentRole>
      <Position>50</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" original="form10-q.htm">form10-q.htm</File>
    <File>codx-20220331.xsd</File>
    <File>codx-20220331_cal.xml</File>
    <File>codx-20220331_def.xml</File>
    <File>codx-20220331_lab.xml</File>
    <File>codx-20220331_pre.xml</File>
    <File>ex31-1.htm</File>
    <File>ex31-2.htm</File>
    <File>ex32-1.htm</File>
    <File>ex32-2.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="461">http://fasb.org/us-gaap/2022</BaseTaxonomy>
    <BaseTaxonomy items="31">http://xbrl.sec.gov/dei/2022</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>68
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "form10-q.htm": {
   "axisCustom": 0,
   "axisStandard": 17,
   "contextCount": 92,
   "dts": {
    "calculationLink": {
     "local": [
      "codx-20220331_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "codx-20220331_def.xml"
     ]
    },
    "inline": {
     "local": [
      "form10-q.htm"
     ]
    },
    "labelLink": {
     "local": [
      "codx-20220331_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "codx-20220331_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "codx-20220331.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd",
      "https://xbrl.sec.gov/country/2022/country-2022.xsd",
      "https://xbrl.sec.gov/dei/2022/dei-2022.xsd"
     ]
    }
   },
   "elementCount": 437,
   "entityCount": 1,
   "hidden": {
    "http://codiagnostics.com/20220331": 20,
    "http://fasb.org/us-gaap/2022": 68,
    "http://xbrl.sec.gov/dei/2022": 4,
    "total": 92
   },
   "keyCustom": 38,
   "keyStandard": 248,
   "memberCustom": 10,
   "memberStandard": 27,
   "nsprefix": "CODX",
   "nsuri": "http://codiagnostics.com/20220331",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "b",
       "span",
       "p",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "00000001 - Document - Cover",
     "role": "http://codiagnostics.com/role/Cover",
     "shortName": "Cover",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "b",
       "span",
       "p",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000010 - Disclosure - Goodwill and Intangible Assets",
     "role": "http://codiagnostics.com/role/GoodwillAndIntangibleAssets",
     "shortName": "Goodwill and Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000011 - Disclosure - Fair Value Measurements",
     "role": "http://codiagnostics.com/role/FairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000012 - Disclosure - Revenue",
     "role": "http://codiagnostics.com/role/Revenue",
     "shortName": "Revenue",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000013 - Disclosure - Earnings Per Share",
     "role": "http://codiagnostics.com/role/EarningsPerShare",
     "shortName": "Earnings Per Share",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000014 - Disclosure - Stock-Based Compensation",
     "role": "http://codiagnostics.com/role/Stock-basedCompensation",
     "shortName": "Stock-Based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000015 - Disclosure - Income Taxes",
     "role": "http://codiagnostics.com/role/IncomeTaxes",
     "shortName": "Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000016 - Disclosure - Related Party Transactions",
     "role": "http://codiagnostics.com/role/RelatedPartyTransactions",
     "shortName": "Related Party Transactions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000017 - Disclosure - Leases",
     "role": "http://codiagnostics.com/role/Leases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000018 - Disclosure - Commitments and Contingencies",
     "role": "http://codiagnostics.com/role/CommitmentsAndContingencies",
     "shortName": "Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfStockholdersEquityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000019 - Disclosure - Share Repurchase Program",
     "role": "http://codiagnostics.com/role/ShareRepurchaseProgram",
     "shortName": "Share Repurchase Program",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfStockholdersEquityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00000002 - Statement - Consolidated Balance Sheets (Unaudited)",
     "role": "http://codiagnostics.com/role/BalanceSheets",
     "shortName": "Consolidated Balance Sheets (Unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000020 - Disclosure - Subsequent Events",
     "role": "http://codiagnostics.com/role/SubsequentEvents",
     "shortName": "Subsequent Events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000021 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "role": "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000022 - Disclosure - Goodwill and Intangible Assets (Tables)",
     "role": "http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables",
     "shortName": "Goodwill and Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000023 - Disclosure - Fair Value Measurements (Tables)",
     "role": "http://codiagnostics.com/role/FairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000024 - Disclosure - Revenue (Tables)",
     "role": "http://codiagnostics.com/role/RevenueTables",
     "shortName": "Revenue (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000025 - Disclosure - Earnings Per Share (Tables)",
     "role": "http://codiagnostics.com/role/EarningsPerShareTables",
     "shortName": "Earnings Per Share (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000026 - Disclosure - Stock-Based Compensation (Tables)",
     "role": "http://codiagnostics.com/role/Stock-basedCompensationTables",
     "shortName": "Stock-Based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000027 - Disclosure - Leases (Tables)",
     "role": "http://codiagnostics.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:TradeAndOtherAccountsReceivablePolicy",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000028 - Disclosure - Summary of Significant Accounting Policies (Details Narrative)",
     "role": "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative",
     "shortName": "Summary of Significant Accounting Policies (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:TradeAndOtherAccountsReceivablePolicy",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
      "reportCount": 1,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000029 - Disclosure - Business Combinations (Details Narrative)",
     "role": "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative",
     "shortName": "Business Combinations (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2021-12-302021-12-31_custom_AdvancedConceptionsIncAndIdahoMolecularIncMember",
      "decimals": "-5",
      "lang": null,
      "name": "CODX:StockIssuedDuringPeriodSharesExchanged",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00000003 - Statement - Consolidated Balance Sheets (Unaudited) (Parenthetical)",
     "role": "http://codiagnostics.com/role/BalanceSheetsParenthetical",
     "shortName": "Consolidated Balance Sheets (Unaudited) (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000030 - Disclosure - Schedule of Goodwill (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfGoodwillDetails",
     "shortName": "Schedule of Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000031 - Disclosure - Schedule of Intangible Assets, Net (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails",
     "shortName": "Schedule of Intangible Assets, Net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "CODX:FairValueOfContingentConsiderationToCommonStock",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000032 - Disclosure - Schedule of Fair Value Assets and Liabilities (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails",
     "shortName": "Schedule of Fair Value Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31_us-gaap_FairValueMeasurementsRecurringMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "CODX:FairValueOfContingentConsiderationToCommonStock",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000033 - Disclosure - Schedule of Changes in Fair Value Measurement (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails",
     "shortName": "Schedule of Changes in Fair Value Measurement (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:WarrantsAndRightsOutstandingTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000034 - Disclosure - Schedule of Contingent Consideration Common Stock and Warrants (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails",
     "shortName": "Schedule of Contingent Consideration Common Stock and Warrants (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:WarrantsAndRightsOutstandingTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000035 - Disclosure - Summary of Revenue by Geographic Area (Details)",
     "role": "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
     "shortName": "Summary of Revenue by Geographic Area (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000036 - Disclosure - Schedule of Deferred Revenue (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails",
     "shortName": "Schedule of Deferred Revenue (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000037 - Disclosure - Schedule of Basic and Diluted Earnings Per Share (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails",
     "shortName": "Schedule of Basic and Diluted Earnings Per Share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerShareTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "lang": null,
      "name": "CODX:WeightedAverageNumberOfBasicSharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000038 - Disclosure - Earnings Per Share (Details Narrative)",
     "role": "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
     "shortName": "Earnings Per Share (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000039 - Disclosure - Schedule of Option Activity (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails",
     "shortName": "Schedule of Option Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00000004 - Statement - Consolidated Statements of Operations (Unaudited)",
     "role": "http://codiagnostics.com/role/StatementsOfOperations",
     "shortName": "Consolidated Statements of Operations (Unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000040 - Disclosure - Schedule of Outstanding Restricted Stock Units and Related Activity (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
     "shortName": "Schedule of Outstanding Restricted Stock Units and Related Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31_us-gaap_RestrictedStockUnitsRSUMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000041 - Disclosure - Schedule of Warrant Activity (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails",
     "shortName": "Schedule of Warrant Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000042 - Disclosure - Schedule of Recognized Stock-based Compensation Expense (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
     "shortName": "Schedule of Recognized Stock-based Compensation Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationActivityTableTextBlock",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "CODX:ClassOfWarrantExercisable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000043 - Disclosure - Stock-Based Compensation (Details Narrative)",
     "role": "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative",
     "shortName": "Stock-Based Compensation (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "CODX:ClassOfWarrantExercisable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxExpenseBenefit",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000044 - Disclosure - Income Taxes (Details Narrative)",
     "role": "http://codiagnostics.com/role/IncomeTaxesDetailsNarrative",
     "shortName": "Income Taxes (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedRoyaltiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000045 - Disclosure - Related Party Transactions (Details Narrative)",
     "role": "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative",
     "shortName": "Related Party Transactions (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2017-01-30_custom_ExclusiveLicenseAgreementMember_custom_DrBrentSatterfieldMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedRoyaltiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000046 - Disclosure - Schedule of Lease Expense (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails",
     "shortName": "Schedule of Lease Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "CODX:ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000047 - Disclosure - Schedule of Maturities on Company Lease Liabilities (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails",
     "shortName": "Schedule of Maturities on Company Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "CODX:ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "CODX:ScheduleOfOperatingLeaseTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasePayments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000048 - Disclosure - Schedule of Other Information Related to Operating Lease (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails",
     "shortName": "Schedule of Other Information Related to Operating Lease (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "CODX:ScheduleOfOperatingLeaseTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasePayments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000049 - Disclosure - Schedule of Future Minimum Lease Payments (Details)",
     "role": "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails",
     "shortName": "Schedule of Future Minimum Lease Payments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00000005 - Statement - Consolidated Statements of Cash Flows (Unaudited)",
     "role": "http://codiagnostics.com/role/StatementsOfCashFlows",
     "shortName": "Consolidated Statements of Cash Flows (Unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:ScheduleOfStockholdersEquityTableTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000050 - Disclosure - Share Repurchase Program (Details Narrative)",
     "role": "http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative",
     "shortName": "Share Repurchase Program (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "span",
       "p",
       "us-gaap:ScheduleOfStockholdersEquityTableTextBlock",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2022-03-31",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2020-12-31_us-gaap_CommonStockMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00000006 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited)",
     "role": "http://codiagnostics.com/role/StatementsOfStockholdersEquity",
     "shortName": "Consolidated Statements of Stockholders' Equity (Unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "AsOf2020-12-31_us-gaap_CommonStockMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000007 - Disclosure - Overview and Basis of Presentation",
     "role": "http://codiagnostics.com/role/OverviewAndBasisOfPresentation",
     "shortName": "Overview and Basis of Presentation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000008 - Disclosure - Summary of Significant Accounting Policies",
     "role": "http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies",
     "shortName": "Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "00000009 - Disclosure - Business Combinations",
     "role": "http://codiagnostics.com/role/BusinessCombinations",
     "shortName": "Business Combinations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "form10-q.htm",
      "contextRef": "From2022-01-01to2022-03-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 37,
   "tag": {
    "CODX_AdvancedConceptionsIncAndIdahoMolecularIncMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Advanced Conceptions, Inc. and Idaho Molecular, Inc. [Member]",
        "label": "Advanced Conceptions, Inc. and Idaho Molecular, Inc. [Member]"
       }
      }
     },
     "localname": "AdvancedConceptionsIncAndIdahoMolecularIncMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_ClassOfWarrantExercisable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Class of warrant exercisable.",
        "label": "Warrants exercisable"
       }
      }
     },
     "localname": "ClassOfWarrantExercisable",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "CODX_ContingentConsideredIssuedForBusinessAcquisitions": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contingent considered issued for business acquisitions.",
        "label": "Change in fair value of contingent consideration issued for business acquisitions"
       }
      }
     },
     "localname": "ContingentConsideredIssuedForBusinessAcquisitions",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_DisclosureLeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases",
        "terseLabel": "Schedule Of Maturities On Company Lease Liabilities",
        "verboseLabel": "Schedule Of Lease Expense"
       }
      }
     },
     "localname": "DisclosureLeasesAbstract",
     "nsuri": "http://codiagnostics.com/20220331",
     "xbrltype": "stringItemType"
    },
    "CODX_DrBrentSatterfieldMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Dr. Brent Satterfield [Member]",
        "label": "Dr. Brent Satterfield [Member]"
       }
      }
     },
     "localname": "DrBrentSatterfieldMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_EarningsBasicPerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Earnings basic per share.",
        "label": "Basic earnings per share"
       }
      }
     },
     "localname": "EarningsBasicPerShare",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ExclusiveLicenseAgreementMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Exclusive License Agreement [Member]",
        "label": "Exclusive License Agreement [Member]"
       }
      }
     },
     "localname": "ExclusiveLicenseAgreementMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_FairValueOfContingentConsiderationToCommonStock": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of contingent consideration to common stock.",
        "label": "Contingent consideration - common stock"
       }
      }
     },
     "localname": "FairValueOfContingentConsiderationToCommonStock",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_FairValueOfContingentConsiderationToWarrants": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of contigent consideration to warrants.",
        "label": "Contingent consideration - warrants"
       }
      }
     },
     "localname": "FairValueOfContingentConsiderationToWarrants",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_GainOnRemeasurementOfAcquisitionContingencies": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gain on remeasurement of acquisition contingencies.",
        "label": "Gain on remeasurement of acquisition contingencies",
        "negatedLabel": "Change in fair value of acquisition contingencies"
       }
      }
     },
     "localname": "GainOnRemeasurementOfAcquisitionContingencies",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_IndefiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indefinite lived intangible asset useful life.",
        "label": "Estimated useful lives in years, term"
       }
      }
     },
     "localname": "IndefiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "CODX_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lessee operating lease liability payments due after year four.",
        "label": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_LossOnEquityMethodInvestmentInJointVenture": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Loss on equity method investment in joint venture",
        "label": "(Loss) on equity method investment in joint venture"
       }
      }
     },
     "localname": "LossOnEquityMethodInvestmentInJointVenture",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_MeasurementInputStrikePriceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement Input Strike Price [Member]",
        "label": "Measurement Input Strike Price [Member]"
       }
      }
     },
     "localname": "MeasurementInputStrikePriceMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_NoncashLeaseExpense": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Noncash lease expense",
        "label": "Non-cash lease expense"
       }
      }
     },
     "localname": "NoncashLeaseExpense",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Noncash or part noncash inventory moved to property plant and equipment",
        "label": "Inventory moved to property, plant and equipment"
       }
      }
     },
     "localname": "NoncashOrPartNoncashInventoryMovedToPropertyPlantAndEquipment",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_PaymentsToAcquireInterestInJointVentures": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Payments to acquire interest in joint ventures",
        "label": "PaymentsToAcquireInterestInJointVentures",
        "negatedLabel": "Investment in joint venture"
       }
      }
     },
     "localname": "PaymentsToAcquireInterestInJointVentures",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_ProceedsFromExerciseOfOptionsAndWarrants": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Proceeds from exercise of options and warrants",
        "label": "Proceeds from exercise of options and warrants"
       }
      }
     },
     "localname": "ProceedsFromExerciseOfOptionsAndWarrants",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_RecentlyAdoptedAccountingStandardsPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Recently adopted accounting standards [Policy Text Block]",
        "label": "Recently Adopted Accounting Standards"
       }
      }
     },
     "localname": "RecentlyAdoptedAccountingStandardsPolicyTextBlock",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "CODX_RestOfWorldMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rest of World [Member]",
        "label": "Rest of World [Member]"
       }
      }
     },
     "localname": "RestOfWorldMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of maturities on company lease liabilities [Table Text Block]",
        "label": "Schedule of Maturities on Company Lease Liabilities"
       }
      }
     },
     "localname": "ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesTableTextBlock",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "CODX_ScheduleOfOperatingLeaseTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of operating lease [Table Text Block]",
        "label": "Schedule of Other Information Related to Operating Lease"
       }
      }
     },
     "localname": "ScheduleOfOperatingLeaseTableTextBlock",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value, exercised.",
        "label": "Weighted Average Fair Value, Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based compensation arrangement by share-based payment award, non-option, granted in period, weighted average exercise price.",
        "label": "Weighted Average Fair Value, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average exercise price, beginning.",
        "label": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice",
        "periodStartLabel": "Weighted Average Exercise Price, Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the non-option plan.",
        "label": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice",
        "periodEndLabel": "Weighted Average Exercise Price, Ending"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsNonOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of warrants exercised.",
        "label": "Intrinsic value of warrants exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardWarrantsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average exercise price, forfeited/cancelled.",
        "label": "Weighted Average Exercise Price, Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to non-options of the plan that expired.",
        "label": "Weighted Average Exercise Price, Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average exercise price, forfeited/cancelled.",
        "label": "Weighted Average Exercise Price, Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average exercise price, granted.",
        "label": "Weighted Average Exercise Price, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardNonOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average remaining contractual life (years) outstanding, beginning.",
        "label": "Weighted-average Remaining Contractual Life (Years) Outstanding, Beginning"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average remaining contractual life (years) outstanding, ending.",
        "label": "Weighted-average Remaining Contractual Life (Years) Outstanding, Ending"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value, beginning.",
        "label": "SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Weighted Average Fair Value, Ending",
        "periodStartLabel": "Weighted Average Fair Value, Beginning"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardNonOptionsWeightedAverageGrantDateFairValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.",
        "label": "Weighted Average Fair Value, Expired"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsExpirationsWeightedAverageGrantDateFairValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value, forfeited/cancelled.",
        "label": "Weighted Average Fair Value, Forfeited/Cancelled"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNonOptionsForfeitedWeightedAverageGrantDateFairValue",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercisable.",
        "label": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable",
        "periodEndLabel": "Weighted Average Fair Value, Exercisable Ending"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercisable",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options non vested weighted average grant date fair value exercised.",
        "label": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised",
        "periodEndLabel": "Weighted Average Fair Value Exercised"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueExercised",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "CODX_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options non vested weighted average term.",
        "label": "Weighted-average Remaining Contractual Life (years) Outstanding, Ending"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "CODX_StockIssuedDuringPeriodSharesContingentConsideration": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock issued during period shares contingent consideration.",
        "label": "Number of shares on contingent consideration"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesContingentConsideration",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "CODX_StockIssuedDuringPeriodSharesExchanged": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock issued during period shares exchanged.",
        "label": "Number of shares exchanged"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesExchanged",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "CODX_StockIssuedDuringPeriodSharesStockOptionsExercised1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "StockIssuedDuringPeriodSharesStockOptionsExercised1",
        "negatedLabel": "Number of Options Outstanding, Exercised"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised1",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "CODX_StockOptionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock Options [Member]",
        "label": "Stock Options [Member]"
       }
      }
     },
     "localname": "StockOptionsMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_TaxesPayableNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Taxes payable non current.",
        "label": "TaxesPayableNoncurrent",
        "verboseLabel": "Income taxes payable"
       }
      }
     },
     "localname": "TaxesPayableNoncurrent",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "CODX_ThirdPartiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Third Parties [Member]",
        "label": "Third Parties [Member]"
       }
      }
     },
     "localname": "ThirdPartiesMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_ThreeCustomersTogetherMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Three Customers Together [Member]",
        "label": "Three Customers Together [Member]"
       }
      }
     },
     "localname": "ThreeCustomersTogetherMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_TwoCustomersTogetherMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two Customers Together [Member]",
        "label": "Two Customers Together [Member]"
       }
      }
     },
     "localname": "TwoCustomersTogetherMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_TwoThousandFifteenLongTermIncentivePlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "2015 Long Term Incentive Plan [Member]",
        "label": "2015 Long Term Incentive Plan [Member]"
       }
      }
     },
     "localname": "TwoThousandFifteenLongTermIncentivePlanMember",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "CODX_WeightedAverageNumberOfBasicSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average number of basic shares outstanding.",
        "label": "Weighted average shares, basic"
       }
      }
     },
     "localname": "WeightedAverageNumberOfBasicSharesOutstanding",
     "nsuri": "http://codiagnostics.com/20220331",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_AmendmentDescription": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of changes contained within amended document.",
        "label": "Amendment Description"
       }
      }
     },
     "localname": "AmendmentDescription",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AnnualInformationForm": {
     "auth_ref": [
      "r547"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form.",
        "label": "Annual Information Form"
       }
      }
     },
     "localname": "AnnualInformationForm",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditedAnnualFinancialStatements": {
     "auth_ref": [
      "r547"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements.",
        "label": "Audited Annual Financial Statements"
       }
      }
     },
     "localname": "AuditedAnnualFinancialStatements",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CountryRegion": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Region code of country",
        "label": "Country Region"
       }
      }
     },
     "localname": "CountryRegion",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAccountingStandard": {
     "auth_ref": [
      "r546"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The basis of accounting the registrant has used to prepare the financial statements included in this filing This can either be 'U.S. GAAP', 'International Financial Reporting Standards', or 'Other'.",
        "label": "Document Accounting Standard"
       }
      }
     },
     "localname": "DocumentAccountingStandard",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "accountingStandardItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r544",
      "r546",
      "r547"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
        "label": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentPeriodStartDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The start date of the period covered in the document, in YYYY-MM-DD format.",
        "label": "Document Period Start Date"
       }
      }
     },
     "localname": "DocumentPeriodStartDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentQuarterlyReport": {
     "auth_ref": [
      "r545"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an quarterly report.",
        "label": "Document Quarterly Report"
       }
      }
     },
     "localname": "DocumentQuarterlyReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentRegistrationStatement": {
     "auth_ref": [
      "r533"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a registration statement.",
        "label": "Document Registration Statement"
       }
      }
     },
     "localname": "DocumentRegistrationStatement",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentShellCompanyEventDate": {
     "auth_ref": [
      "r546"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date of event requiring a shell company report.",
        "label": "Document Shell Company Event Date"
       }
      }
     },
     "localname": "DocumentShellCompanyEventDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentShellCompanyReport": {
     "auth_ref": [
      "r546"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true for a Shell Company Report pursuant to section 13 or 15(d) of the Exchange Act.",
        "label": "Document Shell Company Report"
       }
      }
     },
     "localname": "DocumentShellCompanyReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r548"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
        "label": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "auth_ref": [
      "r536"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Documents incorporated by reference.",
        "label": "Documents Incorporated by Reference [Text Block]"
       }
      }
     },
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 2 such as Street or Suite number",
        "label": "Entity Address, Address Line Two"
       }
      }
     },
     "localname": "EntityAddressAddressLine2",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine3": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 3 such as an Office Park",
        "label": "Entity Address, Address Line Three"
       }
      }
     },
     "localname": "EntityAddressAddressLine3",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCountry": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "ISO 3166-1 alpha-2 country code.",
        "label": "Entity Address, Country"
       }
      }
     },
     "localname": "EntityAddressCountry",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "countryCodeItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityBankruptcyProceedingsReportingCurrent": {
     "auth_ref": [
      "r539"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For registrants involved in bankruptcy proceedings during the preceding five years, the value Yes indicates that the registrant has filed all documents and reports required to be filed by Section 12, 13 or 15(d) of the Securities Exchange Act of 1934 subsequent to the distribution of securities under a plan confirmed by a court; the value No indicates the registrant has not.  Registrants not involved in bankruptcy proceedings during the preceding five years should not report this element.",
        "label": "Entity Bankruptcy Proceedings, Reporting Current"
       }
      }
     },
     "localname": "EntityBankruptcyProceedingsReportingCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
        "label": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityExTransitionPeriod": {
     "auth_ref": [
      "r553"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.",
        "label": "Elected Not To Use the Extended Transition Period"
       }
      }
     },
     "localname": "EntityExTransitionPeriod",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
        "label": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r550"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
        "label": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPrimarySicNumber": {
     "auth_ref": [
      "r547"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary Standard Industrial Classification (SIC) Number for the Entity.",
        "label": "Entity Primary SIC Number"
       }
      }
     },
     "localname": "EntityPrimarySicNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "sicNumberItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r551"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_Extension": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Extension number for local phone number.",
        "label": "Extension"
       }
      }
     },
     "localname": "Extension",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_NoTradingSymbolFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a security having no trading symbol.",
        "label": "No Trading Symbol Flag"
       }
      }
     },
     "localname": "NoTradingSymbolFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "trueItemType"
    },
    "dei_OtherReportingStandardItemNumber": {
     "auth_ref": [
      "r546"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "\"Item 17\" or \"Item 18\" specified when the basis of accounting is neither US GAAP nor IFRS.",
        "label": "Other Reporting Standard Item Number"
       }
      }
     },
     "localname": "OtherReportingStandardItemNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "otherReportingStandardItemNumberItemType"
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "auth_ref": [
      "r540"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.",
        "label": "Pre-commencement Issuer Tender Offer"
       }
      }
     },
     "localname": "PreCommencementIssuerTenderOffer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_PreCommencementTenderOffer": {
     "auth_ref": [
      "r541"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.",
        "label": "Pre-commencement Tender Offer"
       }
      }
     },
     "localname": "PreCommencementTenderOffer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r534"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_Security12gTitle": {
     "auth_ref": [
      "r538"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(g) registered security.",
        "label": "Title of 12(g) Security"
       }
      }
     },
     "localname": "Security12gTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r537"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_SecurityReportingObligation": {
     "auth_ref": [
      "r542"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "15(d), indicating whether the security has a reporting obligation under that section of the Exchange Act.",
        "label": "Security Reporting Obligation"
       }
      }
     },
     "localname": "SecurityReportingObligation",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "securityReportingObligationItemType"
    },
    "dei_SolicitingMaterial": {
     "auth_ref": [
      "r543"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.",
        "label": "Soliciting Material"
       }
      }
     },
     "localname": "SolicitingMaterial",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "dei_WrittenCommunications": {
     "auth_ref": [
      "r552"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.",
        "label": "Written Communications"
       }
      }
     },
     "localname": "WrittenCommunications",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://codiagnostics.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "srt_AmericasMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Americas [Member]"
       }
      }
     },
     "localname": "AmericasMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r146",
      "r250",
      "r256",
      "r501"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r200",
      "r201",
      "r202",
      "r203",
      "r218",
      "r224",
      "r272",
      "r274",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r499",
      "r502",
      "r530",
      "r531"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r200",
      "r201",
      "r202",
      "r203",
      "r218",
      "r224",
      "r272",
      "r274",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r499",
      "r502",
      "r530",
      "r531"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r146",
      "r250",
      "r256",
      "r501"
     ],
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r196",
      "r200",
      "r201",
      "r202",
      "r203",
      "r218",
      "r224",
      "r262",
      "r272",
      "r274",
      "r312",
      "r313",
      "r314",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r499",
      "r502",
      "r530",
      "r531"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r196",
      "r200",
      "r201",
      "r202",
      "r203",
      "r218",
      "r224",
      "r262",
      "r272",
      "r274",
      "r312",
      "r313",
      "r314",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r499",
      "r502",
      "r530",
      "r531"
     ],
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r144",
      "r145",
      "r250",
      "r255",
      "r500",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529"
     ],
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r144",
      "r145",
      "r250",
      "r255",
      "r500",
      "r516",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualAxis": {
     "auth_ref": [
      "r147",
      "r444"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingStandardsUpdate201602Member": {
     "auth_ref": [
      "r416"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).",
        "label": "Accounting Standards Update 2016-02 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201602Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r38",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "auth_ref": [
      "r9",
      "r26",
      "r148",
      "r149"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Accounts receivable"
       }
      }
     },
     "localname": "AccountsReceivableGrossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableMember": {
     "auth_ref": [
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold.",
        "label": "Accounts Receivable [Member]"
       }
      }
     },
     "localname": "AccountsReceivableMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r148",
      "r149"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Accounts receivable, net"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableNetNoncurrent": {
     "auth_ref": [
      "r148",
      "r476",
      "r487"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as noncurrent.",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Noncurrent",
        "verboseLabel": "Note receivable"
       }
      }
     },
     "localname": "AccountsReceivableNetNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r41"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued expenses, current"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedRoyaltiesCurrent": {
     "auth_ref": [
      "r12",
      "r41"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for royalties. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued royalties"
       }
      }
     },
     "localname": "AccruedRoyaltiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapital": {
     "auth_ref": [
      "r27",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.",
        "label": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapital",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r86",
      "r87",
      "r88",
      "r319",
      "r320",
      "r321",
      "r380"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
        "label": "Additional Paid-in Capital [Member]"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r0",
      "r1",
      "r2",
      "r3",
      "r4",
      "r89",
      "r90",
      "r91",
      "r92",
      "r101",
      "r158",
      "r159",
      "r163",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r319",
      "r320",
      "r321",
      "r338",
      "r339",
      "r340",
      "r341",
      "r360",
      "r361",
      "r362",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r412",
      "r413",
      "r417",
      "r418",
      "r419",
      "r420",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r467",
      "r468",
      "r469",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r514"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by amendment to accounting standards.",
        "label": "Accounting Standards Update [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to cash used in operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r316"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Total stock-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r32",
      "r154",
      "r169"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Doubtful accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r111"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
        "label": "Securities excluded from computation of diluted earnings per share"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent": {
     "auth_ref": [
      "r365"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as current.",
        "label": "Contingent consideration liabilities, current"
       }
      }
     },
     "localname": "AssetAcquisitionContingentConsiderationLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityNoncurrent": {
     "auth_ref": [
      "r365"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as noncurrent.",
        "label": "Contingent consideration liabilities"
       }
      }
     },
     "localname": "AssetAcquisitionContingentConsiderationLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r20",
      "r80",
      "r132",
      "r135",
      "r141",
      "r162",
      "r205",
      "r206",
      "r207",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r368",
      "r370",
      "r396",
      "r447",
      "r449",
      "r473",
      "r488"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets [Default Label]",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r10",
      "r37",
      "r80",
      "r162",
      "r205",
      "r206",
      "r207",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r368",
      "r370",
      "r396",
      "r447",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current assets"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsFairValueDisclosure": {
     "auth_ref": [
      "r384"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value portion of probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Total assets measured at fair value"
       }
      }
     },
     "localname": "AssetsFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r279",
      "r280",
      "r281",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r307",
      "r308",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r271",
      "r273",
      "r357"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r271",
      "r273",
      "r355",
      "r356",
      "r357"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Business Acquisition [Line Items]"
       }
      }
     },
     "localname": "BusinessAcquisitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination and Asset Acquisition [Abstract]"
       }
      }
     },
     "localname": "BusinessCombinationAndAssetAcquisitionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent": {
     "auth_ref": [
      "r363",
      "r364"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer.",
        "label": "Business Combination, Contingent Consideration, Liability, Noncurrent",
        "periodEndLabel": "Fair value as of March 31, 2022",
        "periodStartLabel": "Fair value as of December 31, 2021"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfChangesInFairValueMeasurementDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r358",
      "r366"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combinations"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r353"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]",
        "verboseLabel": "Business Combinations"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "auth_ref": [
      "r6",
      "r85",
      "r127"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).",
        "label": "Overview and Basis of Presentation"
       }
      }
     },
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/OverviewAndBasisOfPresentation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r7",
      "r17",
      "r71"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "auth_ref": [
      "r64",
      "r71",
      "r74"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "periodEndLabel": "Cash and cash equivalents at end of period",
        "periodStartLabel": "Cash and cash equivalents at beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r64",
      "r405"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Net increase in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [
      "r23",
      "r24",
      "r25",
      "r79",
      "r80",
      "r104",
      "r105",
      "r106",
      "r108",
      "r110",
      "r119",
      "r120",
      "r121",
      "r162",
      "r205",
      "r210",
      "r211",
      "r212",
      "r216",
      "r217",
      "r222",
      "r223",
      "r225",
      "r226",
      "r227",
      "r396",
      "r549"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights": {
     "auth_ref": [
      "r228"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.",
        "label": "Warrants to purchase shares of common stock",
        "verboseLabel": "Warrants to purchase a common stock"
       }
      }
     },
     "localname": "ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]"
       }
      }
     },
     "localname": "CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r43",
      "r478",
      "r492"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and contingencies (Note 12)"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r197",
      "r198",
      "r199",
      "r204",
      "r518"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/CommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "auth_ref": [
      "r44"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate number of common shares reserved for future issuance.",
        "label": "Aggregate number of common shares reserved"
       }
      }
     },
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r86",
      "r87",
      "r380"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r25"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common stock, par value"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r25"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common stock, shares authorized"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r25"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.",
        "label": "Common stock, shares issued"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r25",
      "r227"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common stock, shares outstanding"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r25",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Common stock, $0.001 par value; 100,000,000 shares authorized; 33,984,068 and 33,819,862 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r125",
      "r126",
      "r146",
      "r394",
      "r395",
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r125",
      "r126",
      "r146",
      "r394",
      "r395",
      "r515",
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r125",
      "r126",
      "r146",
      "r394",
      "r395",
      "r515",
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r122",
      "r486"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentrations Risk and Significant Customers"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r125",
      "r126",
      "r146",
      "r394",
      "r395"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
        "label": "Concentration risk percentage",
        "verboseLabel": "Percentage of revenue"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r125",
      "r126",
      "r146",
      "r394",
      "r395",
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r233"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.",
        "label": "Schedule of Deferred Revenue"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RevenueTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerLiability": {
     "auth_ref": [
      "r231",
      "r232",
      "r251"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Contract with Customer, Liability",
        "periodEndLabel": "Deferred revenue, Ending balance",
        "periodStartLabel": "Deferred revenue, beginning balance"
       }
      }
     },
     "localname": "ContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r231",
      "r232",
      "r251"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Deferred revenue"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r252"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "negatedLabel": "Revenue recognized included in deferred revenue balance at the beginning of the period"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfDeferredRevenueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConvertiblePreferredStockMember": {
     "auth_ref": [
      "r222",
      "r223",
      "r225"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Preferred stock that may be exchanged into common shares or other types of securities at the owner's option.",
        "label": "Convertible Preferred Stock [Member]"
       }
      }
     },
     "localname": "ConvertiblePreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostOfRevenue": {
     "auth_ref": [
      "r58",
      "r80",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r396"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.",
        "label": "Cost of revenue"
       }
      }
     },
     "localname": "CostOfRevenue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r123",
      "r146"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer Concentration Risk [Member]"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r69",
      "r81",
      "r336",
      "r344",
      "r345",
      "r346"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r327",
      "r328"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "Deferred tax liability"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "auth_ref": [
      "r69",
      "r130"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.",
        "label": "Depreciation and amortization"
       }
      }
     },
     "localname": "DepreciationDepletionAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Disaggregation of Revenue [Line Items]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [
      "r250",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock": {
     "auth_ref": [
      "r278",
      "r318"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of share-based payment arrangement.",
        "label": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DueToRelatedPartiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r84",
      "r208",
      "r210",
      "r211",
      "r215",
      "r216",
      "r217",
      "r443",
      "r477",
      "r494"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of obligations due all related parties.",
        "label": "Due to related party"
       }
      }
     },
     "localname": "DueToRelatedPartiesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r54",
      "r93",
      "r94",
      "r95",
      "r96",
      "r97",
      "r102",
      "r104",
      "r108",
      "r109",
      "r110",
      "r114",
      "r115",
      "r381",
      "r382",
      "r482",
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Basic"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings per common share:"
       }
      }
     },
     "localname": "EarningsPerShareBasicAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r54",
      "r93",
      "r94",
      "r95",
      "r96",
      "r97",
      "r104",
      "r108",
      "r109",
      "r110",
      "r114",
      "r115",
      "r381",
      "r382",
      "r482",
      "r496"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.",
        "label": "Diluted",
        "verboseLabel": "Diluted earnings per share"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r111",
      "r112"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
        "label": "Net Income per Share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r111",
      "r112",
      "r113",
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShare"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r330"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r82",
      "r330",
      "r347"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective federal statutory tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "auth_ref": [
      "r317"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.",
        "label": "Unrecognized stock-based compensation"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r317"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Unrecognized stock-based compensation recognition period"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.",
        "label": "Share-Based Payment Arrangement, Option [Member]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r2",
      "r49",
      "r50",
      "r51",
      "r86",
      "r87",
      "r88",
      "r90",
      "r98",
      "r100",
      "r118",
      "r166",
      "r227",
      "r229",
      "r319",
      "r320",
      "r321",
      "r340",
      "r341",
      "r380",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r440",
      "r505",
      "r506",
      "r507"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityMethodInvestmentOwnershipPercentage": {
     "auth_ref": [
      "r160"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of ownership of common stock or equity participation in the investee accounted for under the equity method of accounting.",
        "label": "Equity method investment ownership percentage"
       }
      }
     },
     "localname": "EquityMethodInvestmentOwnershipPercentage",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EquityMethodInvestmentsPolicy": {
     "auth_ref": [
      "r63",
      "r161",
      "r396"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for equity method of accounting for investments and other interests. Investment includes, but is not limited to, unconsolidated subsidiary, corporate joint venture, noncontrolling interest in real estate venture, limited partnership, and limited liability company. Information includes, but is not limited to, ownership percentage, reason equity method is or is not considered appropriate, and accounting policy election for distribution received.",
        "label": "Equity-Method Investments"
       }
      }
     },
     "localname": "EquityMethodInvestmentsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "auth_ref": [
      "r384",
      "r385",
      "r392"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.",
        "label": "Fair Value, Recurring and Nonrecurring [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock": {
     "auth_ref": [
      "r384",
      "r385",
      "r386",
      "r391",
      "r392"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of financial instruments measured at fair value, including those classified in shareholders' equity measured on a recurring or nonrecurring basis. Disclosures include, but are not limited to, fair value measurements recorded and the reasons for the measurements, level within the fair value hierarchy in which the fair value measurements are categorized and transfers between levels 1 and 2. Nonrecurring fair value measurements are those that are required or permitted in the statement of financial position in particular circumstances.",
        "label": "Schedule of Changes in Fair Value Measurement"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Fair Value Measurement Inputs and Valuation Techniques [Line Items]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about input and valuation technique used to measure fair value and change in valuation approach and technique for each separate class of asset and liability measured on recurring and nonrecurring basis.",
        "label": "Fair Value Measurement Inputs and Valuation Techniques [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of input and valuation technique used to measure fair value and change in valuation approach and technique for each separate class of asset and liability measured on recurring and nonrecurring basis.",
        "label": "Schedule of Contingent Consideration Common Stock and Warrants"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "auth_ref": [
      "r384",
      "r385"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).",
        "label": "Schedule of Fair Value Assets and Liabilities"
       }
      }
     },
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r385",
      "r452",
      "r453",
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.",
        "label": "Fair Value Hierarchy and NAV [Axis]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "auth_ref": [
      "r384",
      "r385",
      "r388",
      "r389",
      "r393"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by measurement frequency.",
        "label": "Measurement Frequency [Axis]"
       }
      }
     },
     "localname": "FairValueByMeasurementFrequencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.",
        "label": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/FairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r219",
      "r263",
      "r264",
      "r269",
      "r270",
      "r385",
      "r452"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.",
        "label": "Fair Value, Inputs, Level 1 [Member]"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r263",
      "r264",
      "r269",
      "r270",
      "r385",
      "r453"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.",
        "label": "Fair Value, Inputs, Level 2 [Member]"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r385",
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Inputs, Level 3 [Member]"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement frequency."
       }
      }
     },
     "localname": "FairValueMeasurementFrequencyDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r219",
      "r220",
      "r221",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r452",
      "r453",
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "auth_ref": [
      "r390",
      "r393"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value.",
        "label": "Fair Value, Recurring [Member]"
       }
      }
     },
     "localname": "FairValueMeasurementsRecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Estimated useful lives in years"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r19",
      "r192"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "negatedLabel": "Less accumulated amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r188",
      "r189",
      "r192",
      "r193",
      "r466",
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r192",
      "r470"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Intangible assets, gross"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r188",
      "r191"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "auth_ref": [
      "r69"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.",
        "label": "Loss on disposition of assets",
        "negatedLabel": "Loss on disposition of assets"
       }
      }
     },
     "localname": "GainLossOnDispositionOfAssets1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "auth_ref": [
      "r69"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing activities.",
        "label": "Gain (Loss) on Sale of Investments",
        "negatedLabel": "Loss from equity method investment"
       }
      }
     },
     "localname": "GainLossOnSaleOfInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r59"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "General and administrative"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeographicConcentrationRiskMember": {
     "auth_ref": [
      "r124",
      "r517"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa).",
        "label": "Geographic Concentration Risk [Member]"
       }
      }
     },
     "localname": "GeographicConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r18",
      "r174",
      "r175",
      "r182",
      "r186",
      "r449",
      "r472"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill",
        "periodEndLabel": "Goodwill - Ending",
        "periodStartLabel": "Goodwil - beginning"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/ScheduleOfGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r194"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/GoodwillAndIntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": {
     "auth_ref": [
      "r183",
      "r354"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Measurement period adjustments"
       }
      }
     },
     "localname": "GoodwillTranslationAndPurchaseAccountingAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r57",
      "r80",
      "r132",
      "r134",
      "r137",
      "r140",
      "r142",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r396"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "Gross profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InProcessResearchAndDevelopmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "In process investigation of new knowledge useful in developing new product or service or new process or technique or improvement to existing product or process, and translation of knowledge into plan or design for new product or process or for improvement to existing product or process.",
        "label": "In Process Research and Development [Member]"
       }
      }
     },
     "localname": "InProcessResearchAndDevelopmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r52",
      "r132",
      "r134",
      "r137",
      "r140",
      "r142",
      "r471",
      "r480",
      "r483",
      "r497"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "Income before income taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r82",
      "r331",
      "r332",
      "r335",
      "r342",
      "r348",
      "r350",
      "r351",
      "r352"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r83",
      "r99",
      "r100",
      "r131",
      "r329",
      "r343",
      "r349",
      "r498"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income tax provision",
        "verboseLabel": "Income tax expense benefit"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/IncomeTaxesDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r48",
      "r325",
      "r326",
      "r332",
      "r333",
      "r334",
      "r337"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]",
        "verboseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r73"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Income taxes paid"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.",
        "label": "Accounts payable, accrued expenses and other liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.",
        "label": "Increase (Decrease) in Income Taxes Payable",
        "verboseLabel": "Income taxes payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r68",
      "r462"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "verboseLabel": "Deferred revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
        "label": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventory"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in assets and liabilities:"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.",
        "label": "Increase (Decrease) in Prepaid Expense",
        "negatedLabel": "Prepaid expenses"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r187",
      "r190"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.",
        "label": "Intangible assets, net"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestIncomeOther": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest income earned from interest bearing assets classified as other.",
        "label": "Interest income"
       }
      }
     },
     "localname": "InterestIncomeOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r62",
      "r65",
      "r73"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
        "label": "Interest paid"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryFinishedGoods": {
     "auth_ref": [
      "r33"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.",
        "label": "Inventory finished goods"
       }
      }
     },
     "localname": "InventoryFinishedGoods",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r8",
      "r36",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r13",
      "r35",
      "r76",
      "r117",
      "r171",
      "r172",
      "r173",
      "r463"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventory, Policy [Policy Text Block]",
        "verboseLabel": "Inventory"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterials": {
     "auth_ref": [
      "r34"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory raw materials"
       }
      }
     },
     "localname": "InventoryRawMaterials",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r431",
      "r433"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lease cost recognized by lessee for lease contract.",
        "label": "Lease, Cost",
        "totalLabel": "Total lease costs"
       }
      }
     },
     "localname": "LeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r431"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
        "label": "Schedule of Lease Expense"
       }
      }
     },
     "localname": "LeaseCostTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r424"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Lessee, Leases [Policy Text Block]",
        "verboseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r432"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Schedule of Future Minimum Lease Payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total lease payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "auth_ref": [
      "r432"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.",
        "label": "2022 (remainder)"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r432"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "Less: imputed interest"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r434"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "verboseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r40",
      "r80",
      "r136",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r369",
      "r370",
      "r371",
      "r396",
      "r447",
      "r448"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r31",
      "r80",
      "r162",
      "r396",
      "r449",
      "r474",
      "r490"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and stockholders\u2019 equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and stockholders\u2019 equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r11",
      "r42",
      "r80",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r369",
      "r370",
      "r371",
      "r396",
      "r447",
      "r448",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesFairValueDisclosure": {
     "auth_ref": [
      "r384"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of financial and nonfinancial obligations.",
        "label": "Total liabilities measured at fair value"
       }
      }
     },
     "localname": "LiabilitiesFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "auth_ref": [
      "r14",
      "r15",
      "r16",
      "r21",
      "r22",
      "r80",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r369",
      "r370",
      "r371",
      "r396",
      "r447",
      "r448"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer.",
        "label": "Liabilities, Noncurrent",
        "totalLabel": "Total long-term liabilities"
       }
      }
     },
     "localname": "LiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-term liabilities"
       }
      }
     },
     "localname": "LiabilitiesNoncurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MarketableSecurities": {
     "auth_ref": [
      "r479"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in marketable security.",
        "label": "Marketable securities (certificates of deposit)"
       }
      }
     },
     "localname": "MarketableSecurities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFairValueAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MarketableSecuritiesCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in marketable security, classified as current.",
        "label": "Marketable investment securities"
       }
      }
     },
     "localname": "MarketableSecuritiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MarketableSecuritiesPolicy": {
     "auth_ref": [
      "r484"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for investment classified as marketable security.",
        "label": "Marketable Investment Securities"
       }
      }
     },
     "localname": "MarketableSecuritiesPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_MeasurementInputPriceVolatilityMember": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using rate at which price of security will increase (decrease) for given set of returns.",
        "label": "Measurement Input, Price Volatility [Member]"
       }
      }
     },
     "localname": "MeasurementInputPriceVolatilityMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputRiskFreeInterestRateMember": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using interest rate on instrument with zero risk of financial loss.",
        "label": "Measurement Input, Risk Free Interest Rate [Member]"
       }
      }
     },
     "localname": "MeasurementInputRiskFreeInterestRateMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputSharePriceMember": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using share price of saleable stock.",
        "label": "Measurement Input, Share Price [Member]"
       }
      }
     },
     "localname": "MeasurementInputSharePriceMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "auth_ref": [
      "r387"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of measurement input used to determine value of asset and liability.",
        "label": "Measurement Input Type [Axis]"
       }
      }
     },
     "localname": "MeasurementInputTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input used to determine value of asset and liability."
       }
      }
     },
     "localname": "MeasurementInputTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r64"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash provided by financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r64"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash provided by investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r64",
      "r67",
      "r70"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r5",
      "r46",
      "r47",
      "r51",
      "r53",
      "r70",
      "r80",
      "r89",
      "r93",
      "r94",
      "r95",
      "r96",
      "r99",
      "r100",
      "r107",
      "r132",
      "r134",
      "r137",
      "r140",
      "r142",
      "r162",
      "r205",
      "r206",
      "r207",
      "r210",
      "r211",
      "r212",
      "r213",
      "r214",
      "r216",
      "r217",
      "r382",
      "r396",
      "r481",
      "r495"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net income",
        "totalLabel": "Net income",
        "verboseLabel": "Net income, as reported"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails",
      "http://codiagnostics.com/role/StatementsOfCashFlows",
      "http://codiagnostics.com/role/StatementsOfOperations",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.",
        "label": "Recent Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental disclosure of non-cash investing and financing transactions"
       }
      }
     },
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r359"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.",
        "label": "Noncompete Agreements [Member]"
       }
      }
     },
     "localname": "NoncompeteAgreementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r60"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).",
        "label": "Nonoperating Income (Expense)",
        "totalLabel": "Total other income (expense)"
       }
      }
     },
     "localname": "NonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other income (expense)"
       }
      }
     },
     "localname": "NonoperatingIncomeExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NotesAndLoansReceivableNetCurrent": {
     "auth_ref": [
      "r148",
      "r149",
      "r475"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amortized cost, after allowance for credit loss, of financing receivable classified as current. Excludes net investment in lease.",
        "label": "Note receivable"
       }
      }
     },
     "localname": "NotesAndLoansReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.",
        "label": "Operating Expenses",
        "totalLabel": "Total operating expenses"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating expenses"
       }
      }
     },
     "localname": "OperatingExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r132",
      "r134",
      "r137",
      "r140",
      "r142"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "Operating Income (Loss)",
        "totalLabel": "Income from operations"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r425",
      "r433"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.",
        "label": "Operating lease costs"
       }
      }
     },
     "localname": "OperatingLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r422"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Present value of operating lease liabilities",
        "verboseLabel": "Operating lease liability"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r422"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Operating lease liability, current",
        "verboseLabel": "Less: current portion"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r422"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating lease liability",
        "verboseLabel": "Long-term portion"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/ScheduleOfMaturitiesOnCompanyLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r423",
      "r427"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Cash paid for operating leases included in operating cash flows"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r421"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating lease right-of-use asset",
        "verboseLabel": "Operating right use of asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r430",
      "r433"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Discount rate of operating leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r429",
      "r433"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Remaining lease term of operating leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOtherInformationRelatedToOperatingLeaseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDue": {
     "auth_ref": [
      "r414",
      "r415"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.",
        "label": "Operating Leases, Future Minimum Payments Due",
        "totalLabel": "Total lease payments"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent": {
     "auth_ref": [
      "r414",
      "r415"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Operating Leases, Future Minimum Payments Due, Next 12 Months",
        "verboseLabel": "2023"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDueCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears": {
     "auth_ref": [
      "r414",
      "r415"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Operating Leases, Future Minimum Payments, Due in Two Years",
        "verboseLabel": "2024"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDueInTwoYears",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the remainder of the fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2022"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfFutureMinimumLeasePaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRoyalties": {
     "auth_ref": [
      "r66"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid for royalties during the current period.",
        "label": "Payment for royalties per month"
       }
      }
     },
     "localname": "PaymentsForRoyalties",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r61"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchases of property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r279",
      "r280",
      "r281",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r307",
      "r308",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [
      "r279",
      "r280",
      "r281",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r307",
      "r308",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company.",
        "label": "Preferred Stock [Member]"
       }
      }
     },
     "localname": "PreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r24",
      "r222"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Convertible preferred stock, par value"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Convertible preferred stock , shares authorized"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r24",
      "r222"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Convertible preferred stock, shares issued"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Convertible preferred stock, shares outstanding"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r24",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Convertible preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.",
        "label": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow associated with the aggregate amount received by the entity through sale or maturity of marketable securities (held-to-maturity or available-for-sale) during the period.",
        "label": "Proceeds from maturities of marketable investment securities"
       }
      }
     },
     "localname": "ProceedsFromSaleAndMaturityOfMarketableSecurities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductInformationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Product Information [Line Items]"
       }
      }
     },
     "localname": "ProductInformationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r195",
      "r449",
      "r485",
      "r491"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property and equipment, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r195",
      "r519",
      "r520"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Estimated useful life of property"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r55",
      "r170"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Bad debt expense"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RealEstateInvestmentsJointVentures": {
     "auth_ref": [
      "r493"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The book value of investments in real estate joint ventures including direct and indirect investments.",
        "label": "Investment in joint venture"
       }
      }
     },
     "localname": "RealEstateInvestmentsJointVentures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "localname": "RelatedPartyTransactionsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": {
     "auth_ref": [
      "r441",
      "r442",
      "r443",
      "r445",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.",
        "label": "Related Party Transactions"
       }
      }
     },
     "localname": "RelatedPartyTransactionsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r324",
      "r464",
      "r532"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.",
        "label": "Research and development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "auth_ref": [
      "r324"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.",
        "label": "Research and Development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r111"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met.",
        "label": "Restricted Stock [Member]"
       }
      }
     },
     "localname": "RestrictedStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.",
        "label": "Restricted Stock Units (RSUs) [Member]"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r28",
      "r229",
      "r449",
      "r489",
      "r509",
      "r514"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Accumulated earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r2",
      "r86",
      "r87",
      "r88",
      "r90",
      "r98",
      "r100",
      "r166",
      "r319",
      "r320",
      "r321",
      "r340",
      "r341",
      "r380",
      "r505",
      "r507"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r128",
      "r129",
      "r133",
      "r138",
      "r139",
      "r143",
      "r144",
      "r146",
      "r249",
      "r250",
      "r465"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.",
        "label": "Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "auth_ref": [
      "r128",
      "r129",
      "r133",
      "r138",
      "r139",
      "r143",
      "r144",
      "r146",
      "r249",
      "r250",
      "r465"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.",
        "label": "Revenue from Contract with Customer, Including Assessed Tax",
        "verboseLabel": "Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "auth_ref": [
      "r77",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r261"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue from contract with customer.",
        "label": "Deferred Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r238",
      "r239",
      "r240",
      "r253",
      "r261"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.",
        "label": "Revenue from Contract with Customer [Text Block]",
        "verboseLabel": "Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Revenue"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r77",
      "r78"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.",
        "label": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r428",
      "r433"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.",
        "label": "Right-of-use assets obtained in exchange for new operating lease liabilities"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [
      "r125",
      "r146"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.",
        "label": "Revenue Benchmark [Member]"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfRevenueByGeographicAreaDetails",
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "auth_ref": [
      "r355",
      "r356",
      "r357"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BusinessCombinationsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Table]"
       }
      }
     },
     "localname": "ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r110"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.",
        "label": "Schedule of Basic and Diluted Earnings Per Share"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r188",
      "r191",
      "r466"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfIntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r188",
      "r191"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Intangible Assets, Net"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r182",
      "r183",
      "r184",
      "r185",
      "r186"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/GoodwillAndIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductInformationTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule detailing quantitative information concerning products or product lines by product or product line.",
        "label": "Schedule of Product Information [Table]"
       }
      }
     },
     "localname": "ScheduleOfProductInformationTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": {
     "auth_ref": [
      "r56",
      "r144"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Summary of Revenue by Geographic Area"
       }
      }
     },
     "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RevenueTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock": {
     "auth_ref": [
      "r296",
      "r303",
      "r306"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of activity for award under share-based payment arrangement. Includes, but is not limited to, outstanding award at beginning and end of year, granted, exercised, forfeited, and weighted-average grant date fair value.",
        "label": "Schedule of Recognized Stock-based Compensation Expense"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r275",
      "r276",
      "r279",
      "r280",
      "r281",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r307",
      "r308",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "auth_ref": [
      "r283"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.",
        "label": "Schedule of Outstanding Restricted Stock Units and Related Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r283",
      "r303",
      "r306"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Schedule of Option Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock": {
     "auth_ref": [
      "r230",
      "r277"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.",
        "label": "Schedule of Warrant Activity"
       }
      }
     },
     "localname": "ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockholdersEquityTableTextBlock": {
     "auth_ref": [
      "r227"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of changes in the separate accounts comprising stockholders' equity (in addition to retained earnings) and of the changes in the number of shares of equity securities during at least the most recent annual fiscal period and any subsequent interim period presented is required to make the financial statements sufficiently informative if both financial position and results of operations are presented.",
        "label": "Share Repurchase Program"
       }
      }
     },
     "localname": "ScheduleOfStockholdersEquityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ShareRepurchaseProgram"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingAndMarketingExpense": {
     "auth_ref": [],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.",
        "label": "Sales and marketing"
       }
      }
     },
     "localname": "SellingAndMarketingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r68"
     ],
     "calculation": {
      "http://codiagnostics.com/role/StatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Stock-based compensation expense"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r302"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedLabel": "Number of Restricted Stock Units, Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r302"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.",
        "label": "Weighted Average Grant Date Fair Value, Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r300"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Number of Restricted Stock Units, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r300"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Weighted Average Grant Date Fair Value, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r297",
      "r298"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Number of Restricted Stock Units, Outstanding Ending",
        "periodStartLabel": "Number of Restricted Stock Units, Outstanding Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r297",
      "r298"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Weighted Average Grant Date Fair Value, Outstanding Ending",
        "periodStartLabel": "Weighted Average Grant Date Fair Value, Outstanding Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r301"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Number of Restricted Stock Units, Vested"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r301"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.",
        "label": "Weighted Average Grant Date Fair Value, Vested"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised": {
     "auth_ref": [
      "r293"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-option equity instruments exercised by participants.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised",
        "negatedLabel": "Number of Warrants Outstanding, Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations": {
     "auth_ref": [
      "r295"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares under non-option equity instrument agreements for which rights to exercise lapsed.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations",
        "negatedLabel": "Number of Warrants Outstanding, Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures": {
     "auth_ref": [
      "r294"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares under non-option equity instrument agreements that were cancelled as a result of occurrence of a terminating event.",
        "label": "Number of Warrants Outstanding, Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted": {
     "auth_ref": [
      "r292"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net number of non-option equity instruments granted to participants.",
        "label": "Number of Warrants Outstanding, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r284",
      "r285"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number",
        "periodEndLabel": "Number of Warrants Outstanding, Ending",
        "periodStartLabel": "Number of Warrants Outstanding, Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfWarrantActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r318"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.",
        "label": "Number of common shares availalble for issuance"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r286"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "periodEndLabel": "Number of Options Exercisable Ending"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r286"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "periodEndLabel": "Weighted Average Exercise Price, Exercisable Ending"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r305"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "Intrinsic value of options value exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": {
     "auth_ref": [
      "r291"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.",
        "label": "Number of Options Outstanding, Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "auth_ref": [
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.",
        "label": "Number of Options Outstanding, Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r288"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net number of share options (or share units) granted during the period.",
        "label": "Number of Options Outstanding, Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r304"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.",
        "label": "Weighted Average Fair Value Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r318"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.",
        "label": "Aggregate intrinsic value of options outstanding"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r284",
      "r285"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Number of Options Outstanding, Ending",
        "periodStartLabel": "Number of Options Outstanding, Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r284",
      "r285"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "periodEndLabel": "Weighted Average Exercise Price Outstanding, Ending",
        "periodStartLabel": "Weighted Average Exercise Price Outstanding, Beginning"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r279",
      "r280",
      "r281",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r305",
      "r307",
      "r308",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOutstandingRestrictedStockUnitsAndRelatedActivityDetails",
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r289"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Weighted Average Exercise Price Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r291"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.",
        "label": "Weighted Average Exercise Price Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.",
        "label": "Weighted Average Exercise Price Forfeited/Cancelled"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r288"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "Weighted Average Exercise Price Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r282",
      "r309",
      "r310",
      "r311",
      "r312",
      "r315",
      "r322",
      "r323"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.",
        "label": "Stock-based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r318"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Weighted-average Remaining Contractual Life (years), Exercisable Ending"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-vested options outstanding.",
        "label": "Unvested options"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of non-vested options forfeited.",
        "label": "Weighted Average Fair Value Forfeited/Cancelled"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of non-vested options outstanding.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Option, Nonvested, Weighted Average Exercise Price",
        "periodEndLabel": "Weighted Average Fair Value Outstanding, Ending",
        "periodStartLabel": "Weighted Average Fair Value Outstanding, Beginning"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Weighted-average Remaining Contractual Life (years) Outstanding, Beginning"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of options vested.",
        "label": "Weighted Average Fair Value Expired"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.",
        "label": "Shares, Outstanding",
        "periodEndLabel": "Ending balance, shares",
        "periodStartLabel": "Beginning balance, shares"
       }
      }
     },
     "localname": "SharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShortTermLeaseCost": {
     "auth_ref": [
      "r426",
      "r433"
     ],
     "calculation": {
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.",
        "label": "Short-term lease costs"
       }
      }
     },
     "localname": "ShortTermLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r75",
      "r85"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r23",
      "r24",
      "r25",
      "r79",
      "r80",
      "r104",
      "r105",
      "r106",
      "r108",
      "r110",
      "r119",
      "r120",
      "r121",
      "r162",
      "r205",
      "r210",
      "r211",
      "r212",
      "r216",
      "r217",
      "r222",
      "r223",
      "r225",
      "r226",
      "r227",
      "r396",
      "r549"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Class of Stock [Axis]"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r2",
      "r45",
      "r49",
      "r50",
      "r51",
      "r86",
      "r87",
      "r88",
      "r90",
      "r98",
      "r100",
      "r118",
      "r166",
      "r227",
      "r229",
      "r319",
      "r320",
      "r321",
      "r340",
      "r341",
      "r380",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r440",
      "r505",
      "r506",
      "r507"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r86",
      "r87",
      "r88",
      "r118",
      "r465"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockCompensationPlanMember": {
     "auth_ref": [
      "r111"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares.",
        "label": "Share-Based Payment Arrangement [Member]"
       }
      }
     },
     "localname": "StockCompensationPlanMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfRecognizedStock-basedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesIssuedForServices": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders.",
        "label": "Number of shares issued for services"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesIssuedForServices",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesOther": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of stock issued attributable to transactions classified as other.",
        "label": "Common stock issued for warrant exercises, shares"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).",
        "label": "Stock-based compensation expense, shares"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesShareBasedCompensationGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r24",
      "r25",
      "r227",
      "r229",
      "r289"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Common stock issued for option exercises, shares"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueOther": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of shares of stock issued attributable to transactions classified as other.",
        "label": "Common stock issued for warrant exercises"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).",
        "label": "Stock-based compensation"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensationGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r45",
      "r227",
      "r229"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Common stock issued for option exercises"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramAuthorizedAmount1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of stock repurchase plan authorized.",
        "label": "Stock repurchase program authorized amount"
       }
      }
     },
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ShareRepurchaseProgramDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r25",
      "r29",
      "r30",
      "r80",
      "r156",
      "r162",
      "r396",
      "r449"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Ending balance, value",
        "periodStartLabel": "Beginning balance, value",
        "totalLabel": "Total stockholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets",
      "http://codiagnostics.com/role/StatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r450",
      "r451"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
        "label": "Subsequent Events"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental disclosure of cash flow information"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxesPayableCurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://codiagnostics.com/role/BalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Income taxes payable"
       }
      }
     },
     "localname": "TaxesPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/BalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "auth_ref": [
      "r150",
      "r151",
      "r152",
      "r153",
      "r155",
      "r157"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for accounts receivable.",
        "label": "Accounts Receivable"
       }
      }
     },
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TypeOfAdoptionMember": {
     "auth_ref": [
      "r0",
      "r1",
      "r2",
      "r3",
      "r4",
      "r89",
      "r90",
      "r91",
      "r92",
      "r101",
      "r158",
      "r159",
      "r163",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r319",
      "r320",
      "r321",
      "r338",
      "r339",
      "r340",
      "r341",
      "r360",
      "r361",
      "r362",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r412",
      "r413",
      "r417",
      "r418",
      "r419",
      "r420",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r467",
      "r468",
      "r469",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r514"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amendment to accounting standards."
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfArrangementAxis": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]"
       }
      }
     },
     "localname": "TypeOfArrangementAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/RelatedPartyTransactionsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WarrantMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Security that gives the holder the right to purchase shares of stock in accordance with the terms of the instrument, usually upon payment of a specified amount.",
        "label": "Warrant [Member]"
       }
      }
     },
     "localname": "WarrantMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/EarningsPerShareDetailsNarrative",
      "http://codiagnostics.com/role/Stock-basedCompensationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_WarrantsAndRightsOutstandingMeasurementInput": {
     "auth_ref": [
      "r389"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of input used to measure outstanding warrant and right embodying unconditional obligation requiring redemption by transferring asset at specified or determinable date or upon event certain to occur.",
        "label": "Warrants measurement input"
       }
      }
     },
     "localname": "WarrantsAndRightsOutstandingMeasurementInput",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "decimalItemType"
    },
    "us-gaap_WarrantsAndRightsOutstandingTerm": {
     "auth_ref": [
      "r389"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period between issuance and expiration of outstanding warrant and right embodying unconditional obligation requiring redemption by transferring asset at specified or determinable date or upon event certain to occur, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Expected term"
       }
      }
     },
     "localname": "WarrantsAndRightsOutstandingTerm",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfContingentConsiderationCommonStockAndWarrantsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "auth_ref": [
      "r110"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.",
        "label": "Dilutive effect of stock options, warrants and RSUs"
       }
      }
     },
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r103",
      "r110"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
        "label": "Shares used to compute diluted earnings per share",
        "verboseLabel": "Diluted"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/ScheduleOfBasicAndDilutedEarningsPerShareDetails",
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r102",
      "r110"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "verboseLabel": "Basic"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average shares outstanding:"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://codiagnostics.com/role/StatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    }
   },
   "unitCount": 5
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1278-109256"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "55",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2626-109256"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "https://asc.fasb.org/topic&trid=2144383"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6935-107765"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "https://asc.fasb.org/topic&trid=2134479"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(24))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(25))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e4975-111524"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5212-111524"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5093-111524"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(26))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "https://asc.fasb.org/topic&trid=2126998"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(15))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(16))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "https://asc.fasb.org/topic&trid=2144416"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "410",
   "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "https://asc.fasb.org/topic&trid=2144648"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "https://asc.fasb.org/topic&trid=2127136"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(23))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "50",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=6784392&loc=d3e188667-122775"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130558-203045"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130561-203045"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130564-203045"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130550-203045"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "https://asc.fasb.org/topic&trid=49130388"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(4)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "https://asc.fasb.org/topic&trid=2144680"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "b",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966325&loc=d3e6819-128478"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "15",
   "SubTopic": "50",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911878&loc=d3e8732-128492"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "https://asc.fasb.org/topic&trid=2303972"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "808",
   "URI": "https://asc.fasb.org/extlink&oid=6931272&loc=SL5834143-161434"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(1)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(2)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=SL7498348-110258"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19279-110258"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=SL6742756-110258"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(Note 3)",
   "Topic": "840",
   "URI": "https://asc.fasb.org/extlink&oid=123403562&loc=d3e38371-112697"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "840",
   "URI": "https://asc.fasb.org/extlink&oid=123406913&loc=d3e41502-112717"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL77916155-209984"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(2)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/subtopic&trid=77888251"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "850",
   "URI": "https://asc.fasb.org/topic&trid=2122745"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "https://asc.fasb.org/topic&trid=2122774"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=126938201&loc=d3e55415-109406"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(7))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(9))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(3),(4))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.4)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=d3e62652-112803"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126941378&loc=d3e61044-112788"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(5))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.1(d))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.17)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=126942805&loc=d3e3115-115594"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r533": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12"
  },
  "r534": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r535": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r536": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r537": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r538": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "g"
  },
  "r539": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12, 13, 15d"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r540": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r541": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r542": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "15",
   "Subsection": "d"
  },
  "r543": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "14a",
   "Subsection": "12"
  },
  "r544": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310"
  },
  "r545": {
   "Name": "Form 10-Q",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "308",
   "Subsection": "a"
  },
  "r546": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f"
  },
  "r547": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f"
  },
  "r548": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r549": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r550": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r551": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r552": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "425"
  },
  "r553": {
   "Name": "Securities Act",
   "Number": "7A",
   "Publisher": "SEC",
   "Section": "B",
   "Subsection": "2"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "205",
   "URI": "https://asc.fasb.org/topic&trid=2122149"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21D",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=SL94080555-108585"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(k)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "https://asc.fasb.org/topic&trid=2122369"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>69
<FILENAME>0001493152-22-013020-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001493152-22-013020-xbrl.zip
M4$L#!!0    ( +* K%2Q@#$;Z@T  %B0   1    8V]D>"TR,#(R,#,S,2YX
M<V3M75MSV[@5?FYG^A]0O32=5)8O<3;QVKLCWS)J[<AK*YNT+SL0"4D84X "
M@+:47U\ !&\B"9&R'#,K^B%#$>>"<S[<S@&('/\ZGWK@ 3&.*3EI[>WLM@ B
M#G4Q&9^T/MVUNW=GO5X+_/K+W_X*Y-_QW]MM<(F1YQZ!<^JT>V1$?P8?X10=
M@0^(( 8%93^#WZ'GJS?T$GN(@3,ZG7E((%D0:#H"ASM[!T/0;I>0^SLB+F6?
M;GN1W(D0,W[4Z3P^/NX0^@ ?*;OG.PZ=EA-X)Z#P>21M=[YK_LJQ7V/N1,SO
MWU[/^$_S6_QEC,@[_QR21_X9OKY8#&_>?SO\W[O7Z'[R\/GTS?"W^Z^CQ3T[
M_.T"?[O#X]?T8#K^O/N?0.4Q=R9H"H$$@_"3EK+/F/=XL$/9N+._N[O7^7)]
M=:?I6@'AT=S#Y#Z/?._]^_<=71J29BCG0^:%H@\ZJG@(.8HDRU)LH<>$"TB<
M%+TK(H8D\6$G*$R1XES2MP$I#DE=M$3'D;,SI@\=62#I]_=#0I^WQQ#.(N(1
MY$,MU!2DB#D364+Y<IFH+18SQ'-)@Z(4@RO8$D/*:[*XHXH5SVY[=Z^]OQ=R
MGO7/OT1,JNO!,:%<8$<W::UD]^! DB,/31$1EY1-S]$(^IZTXZL//3S"R&T!
M =D8"=5&^0PZJ(S(L+5#0JCL%+)GFC?JW6R&9:N7+_YRK)K'$:,>&D@3@'J0
MW=&B0%%TSJ@<5UH NR>MX%&)DH*U,!>-,,%:H^E\>Z"MNIJO3)2/FN6XLTR<
M$.%SY/;)+_IYQA"7?-J$*_G",!J2 B8'>H[O5>.)JY++8EZ$KEK?>:?04_WK
M;H*0X($3TZ_LSMR7'E3#'(J\23CUL"O?N, ( H$D\.H3@;Z+9<D_&W]KE]Q
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
M9>-,4[V]Z]A?;7W%R&I7V*<!Q26E*8QLQI6&Q/56P 8@O=H^850-D N9EYU
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
M<KVAW0OZ3=OY%_*T7OXP.F-\VZQD4%P&49\PYAJ+_XA3:/Z;_P)02P,$%
M  @ LH"L5,N*>>.V'   0KT! !4   !C;V1X+3(P,C(P,S,Q7V1E9BYX;6SM
M7>MOXSB2_W[ _@^Z''"8 RZ=5Z=?,WT+Y]5K((F#)#VS^RE0)-K6MBQZ*"F)
MYZ\_DGI8LL2'9%&DW1X,9AR;5:RJ'\DBBT7RM[^_S7SK!:#0@\'7O:-WAWL6
M"!SH>L'DZ][WA_W!P_EPN&>%D1VXM@\#\'4O@'M__[^__8>%__GM/_?WK2L/
M^.X7ZP(Z^\-@#'^U;NT9^&)] P% =@31K];OMA^3;^"5YP-DG</9W <1P#\D
M%7^Q3M\=G3Q;^_L2?'\'@0O1]_MASG<:1?/PR\'!Z^OKNP"^V*\0_0C?.7 F
MQ_ ALJ,XS+D=OAVF_R3DO_E>\.,+^<^S'0(+VRL(O[R%WM<]4F]:[>O).X@F
M!\>'AT<'_[RY?G"F8&;O>P&QFP/V,BK"I8[NZ//GSP?TUZQHI>3;,_*S.DX.
M,G%RSOA7-\H)BH5/#Y(?BT4]#NN"T*'W):2:7$/'CF@+$4ID,4N0O_:S8OOD
MJ_VCX_V3HW=OH;N7X42-C: /[L'8(O_'0.>UDG9I3P(81IY# 3X@)0[.(6[
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
MRUS8>_OU!L^-D&?[,N 4BV\B-E7YC5LZ8^WF $6+.Y^<; E<<BGAG*Q3OH<
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
M;0'>DKPC=$^NE,LGC?G;G.>V[P/W;)&UQ[0@9ZJ_)N,M:A9=&H35?CYKO26
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
M&85D4AY3JJH@#A*I3D6"U[P>EY@TE0BB1A+L*.0R^@ 8=:Q'&R"4L4%G'%W
M<.=\O<F*5XP'D9B6/QIYGQPRPA[R2"D,ADLFA$(X3$]['7^,*DR[HU>VS7Q"
M%^L>V+;B41,IPZ$9<XP^MH;SBBTR*]=RK#3\/IIGA#Y^,D\I#H9N9HR.A(-#
M-+HB<+T:0-.LS"AD?9)+"W=(*ZD@&$+IT(G9=3.B7="]IB<\(A&]O#;\]S7+
M;%D_1CD:*^TUUCY_B;-M13YSE<:D??2WYM6!MU'%6Q1N";X+R0WRP0GF %)X
MX;/50HU:G\U@WP<JSLJ/)?G,EZBN<;E*L>Y<A5K6&VE,<#NVJ 1AT,2 ;LJ/
ML_);Q!300&,_ UF%XV\?BJ?O$ISR,8S\T ]=Y!]_.RV><'ER3V8)45Q/G)/\
MW0<UE+ H'80_!J> "I$X_#RQ1W$:*=\5?5;$6]H%T1%3XL'XS[ZJ60:JK>7A
MWT!4L@20T+0;$;8_Y+F"3\B'$Y;C)(L>)/ G?_=5Q5)8;1V/_@BBDF6(),<C
MN0RB0J&J^0Q7<9FRZ;;.CY&8]TJ7@!3J?B #BP(B,#43!K*!.O9;_)!6S4FZ
M[IRWIAM3R/ON^K6PIV.!5!@$:6P0*D>+H1+JM +QZ"3/MU%VBS=%J://6,PW
M:V0@IV09RH#BB 28DAI<%G'A0(SX7]NH)/.4[-5("D'2-R\44*?4F(B!8H<<
MFY(@G7A8CMR54<ZS@QM)(HIZGVXHP I3CXD<*)XHP*FG))U\6*9\><191O<
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
MY%5*)MDP)CA/?HS2G':IU_E96FT*GIKJ>L4?'WNGFO :E+RN*U@Y,%I6T&J
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
M]NL+N#[LZ7<P%[P]+.?#M$$PB\?%ZGA;X38)1=&8I0O-N#&,R.P'Y?AY<%^
M9XN#=.&ERVQ^I[E_.!4*DH+^3G6+<"P!AGA26.K$\K\RL?!YY#M$5X3/+#@R
M^3<0#$(, :B4')T4/(),H6E(0D41D]4R9:_%7L2_/199@LN*/[(N+_:I5) 5
M7^/NA :GD!6KVRBXC\@?8GS$4\&&;[&6S]X$?MC&ZNF:L(_3V)+&\@D:"6/X
MVU_A*4-I?UE56YR<;4N"D&^Z_TSYS/[6'!EKSY"I'EZ<8<?O$#'33:$K<S$"
M:("9AUS8DVJ>D*4J*&7V6&S+#P5VYP3!TIJWUP5XK34$@-@6CEHP6V,%.K7-
MT.=R^R"Z[FN:3V%&9]#H 6"PZ(9M5\R4H/-30&I+Q^;,]:'TM3.(.%($P$2)
M(]9]YT%P480ZFXP'T3G*WW'YL1P\,.82/^FL :"OK<O6D:[:%'2B6^*W?<H'
M*LF;V&<IEEN8 T!S:Z?MX][#);JM ZZ/5MET[Q!7'#_ .V.J03FME7.VM.2P
MV AO[0[@(5\U2%/Y PEQFM1ZM-$761I;O+JI4?#Z=J81^.@%3*4TF%[8"%&1
M%9&RJM6 ](+TQVV5YKBJSG 5ERE;_SC)$S*2I-7UZH:4'CW_1'][AU_JCP3#
M;XJ"F6/()Q/G.SIDJ+L5,,R=#7W*Z.LG7#ZE^)F= &+Z]$S<T$)P5G])'_)T
ME<;TL)/08$U,ME7V&@D[.30:H*TTP;#4":YX9'.]CLI72L>!'23I@H,SM&V-
M)%R_3_.H:8WLM-+@K5+#*.]J)$1_Z^:@K*^ULP"&P;-@"[O(C1$TL,+Z6V8'
M#0Q!#"8&H,^Z@].V 81).3")-0X9R"O1A$Q:-5P;LH;O87\LBN0YS3+2^"Y)
M7)(_I#2?.3NYV;MFZ& =;7A].G>.>Z-'6ET,@"'J'-13OK8V6(?:6^%]:X5Z
M.Y#Z5BO'37VLJQ%PA-;VN6X6#HO2ICY8S^G@[+V(TI)MR?0>F9:P]"H^F6D#
M?LA#G3P8UEF G'*,JB"F,^@C0:UFR9PR]8D&G=!$T_9X6@705#/U9P.N?<(1
M55F#2-MTR]\7H[D69>^4&?HT:VVO]\?<7!K=%;-3!<-$-[S"'3"NS1-EMOKH
MF1A K05(G:'!65._:*\.B*S:WM)6%]JS<XZX%;0-SL?SJ*3W(FBN/[8A:^@K
MU>(^^68"/>272A9,]V< *&R&-^*(R".F *E[FSICZL\T\B$)I>VQE,)@*67J
MC$1.!2=2'Y5>KX:GIVYQ1A_<."VJFI^O8H>EVF<V#+W7KD9]4G*9 ACR=C>+
M8,B]B!O")B55.&9G]5"C@D[HV>J'YKHOG"YVZ+_\A.$ >/7QM9=I'#MYCLK$
MU#$O_I50;6?!(E(UI@4^ ;)U+>>7_)PK;VZGD$YT=PG2K'>CM!I!DM/9[31I
MQ,&0T8Q1D;>.J #=,9*X9.J*]2J!*:;M)'7RD$EFZKYZE@$XM-3$/33/V.O=
M(,6=<=73I.9W!<G.B?'*D5X'#,,L@8I+1$P-,3TT5(34H:F<L^_?G"Q (*5E
M[^>@#IZJ]GVCFK5[RKG90V,YXU3]GD'66Z9,$]PN":9*,#A7;-!-6<&%@G=6
M5[BJ,!XG&33N19N4?'9)=@X,>R&]!K1=%2NT0,E%+^FG-5]MRI-3]M3$ \[I
MR7;KV:2C#:_/]\QQ;_2JB8N!X+W<+JAEZ1L:&^PHV,@*T(FJE=^FKM/5"#@^
M:[M6-PN'Q6A3GZNE='#R\@O=IKWLB9#7#4<IP-$NXT@"#'FDL(3]1"8$J3?[
M$C_B9)O116WAWC]+]VN\?^A@P.L=1&?'1O<0K;7!$- 9LG2K#]WB#4'U2).
MWY3%0QFMPW-T>U_A?VQ)EWK^9+&9K1;W^TZ7'O3X82ZY+!QNZ0&*-UM;<<3E
M0?5X$U^,'9Q:/B2?]-V72A@LH\R7I2>4"LZCYKG%Z=/ ],KVJS'\M]/U_0BM
MM3O3-SF-BF!XYX)6^? E^V&@'IR+GZ+R-US30?X+CK<E>[>#^Z0H!IV"3]:9
M@0^III8&PR\CQ"FI>@7$'_]BQZIZY>#<NBNC!),FP])P-LDIJEL<8\)^@EI+
M,TM=GXQS<F=(/BM%,#QT0:M( E6A7CXX"_D\YA.N'XND;R?Z3LZ@XW]9PP!?
M7.50*(!AF0U*^1K(,5<:]'GA>[KN&3F[($XM[O?HD1[T^-B17!;:9I<!I_+Y
MO^ ,4CY<:,<H>W6?#'-U:L@X6UTP/9HCX"D56W4V3>AT@_-2DC!'/W3J% *G
M--(,FFII:#V<$>EA9"WBIQ+X,0.[+DZKX?_ B!:Z>%I$*@Z-6V:H0,^)-%=_
MR:RC>,A9NC@[3EGH!;CT;79#<MM;K01FA+1%JLI',%"$PCC5774G^ED; 92
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
M8:46G%ON6(64MMOU/2YI_U8Q>81;A1#<ZO,%C-(%.'NMM .#=P8W[5BH,'(
MG-0C-S*4](%QGU<B'IH(/NR>9B3"O5XU9_B;X__<@^M5_X#O:91E./GX.KTG
MH)IV[VK5Z\+',D4P6AO9S63P)K&L'],&THK1XWD; O>1SHK;MK(B#82E6JEH
MBPS>/N2/PUX_Y[BL'M--OYRD*$$'_?!/^6K<,C_K*U$&PV-7Q/+G?M&:/_>;
M]D^<%ZT)RS7"/59IF[155F/MWSPOUFSX&%I'9:U;L!'038N_$4#'Z!X_I#G-
M!!"\8^CRZI*NK,JBYC69FZ8[ZU,TGR1_WS9O0QO<=[+DL[/8P549"1W,@.E
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
MJ12L2M-!%%Z/:F2;JJ YZ5EU!*F!N^?B[K'85H0$%^FJQCBG%PKI=9K+G-Y
M(+,@NN&G7JRWUX958W.@BT<EW_T!435$]5"GB*@FW'4?]L=F6[_=YT_>"94[
MPP:L*I[O@.%!U>Y P]=%TW;1-D_KZIO^-?%V::A^Q/U5:O;Y(,V<^4SZ&]/K
MZTQD^/IZ4T*?"[:AB)/)Z/0CG3N=137NIFQ=68I\\H\!&!^#%8"8HIQREGV'
M[5RT6% T>,/I_K7A-I=K3N&BB"+J6@ ]<L=!H>=IT/% <:&$WE%;]=/QKHG\
M/AK"]#W <"A^YXUA4 0 FP-%=Y -8C 94=W0IHLS-%?[-LIHG+1X:W"'\+::
MPFS_P[0#>O\^#-4'(9]B0B.* *.*"I]\F[*1##L5H63Y:&;W1W5'KR9X&^BP
M)4)YQ^+ET\!8XMMOX_K3ABWA1C5Z?DSC1SX48KI73N;)[=E_.E5JUJ5H]K#R
MJ5FZIZOX]-0%F6,E[%%1=M'CF'<U[,CP80V<M'1Y.1M#E^6&2H>/ N2R'X^-
M+.[#MB-TCQ_2/ ^U<+I J;A'#>_W0<<9,-X<0>>7@8JRQRUERR[Y4=Q;8,=7
MT->O]!;X-\--@".$PVT&&$>M2C5L]279#D[59<X7^Y:-%Y9& )#) =PW]KO=
M73(61AS1J&"%4R+Q74P#@RP+N9@T)\ZR+R_;F, WB@-C[AZ+P"EJ +#XN6,#
MO^!MCU[)#=;'.F(X,*[NK0#>;C]K-3!M4G[J+V1LX(3A[?%V7@',7UTHMEF"
M'HE8N\B0L.4#MI"0O=*HN%EP>$[K1[KJL,%Q34^%]@L,%=WUI4ITH8'\0+Z"
MJ1<'W!384!:N%=A__NTU &??G?ML3GZ@Y#07D/>E7N=/'Q@IE_;;F9  %LIV
M*Q]MF_4S/W.$\.8H.L]_Z?;FL>7VYK%D>_-H$!=T/2U-L,!/=AV)>YWCQG!8
M2\73@Q;2,,[C%L8R> "VC>"% ? \S*$?#Q/FZA8'E7PT%7LT;[ZA.!>%TTH?
MJ+43W]M3DL/D06"\$0XO40:+[Q0>:%S?WAL6UOM9QN%+XGF:5VF\<"CO\E6
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
M<Q<?\^!ONCI. NV0;A"$TH&RW[10'864:1 PN-+R?R["F+S742$M#CXCPB-
MHZ8CL'^P@_T#'':4?:A134=@_V@'^T<X["A[4:.:F+ ?LQ]G]#9Y4IQ *PM#
M(4?9BQI4Q 1<S#0S>D63Q[!(G&-"O24!A1YQBZI7%M7@BTD>8NU522C>B-M5
MN7*8.%\E:>9%_R]\,*TDY>6AF"-N7'6*[MK!6/#.G1:J4*)&$2B^*'M5J3J[
MAI0S3(FG-M_M$E! 43:@,F5VC.=%PL\^%DFL]<>V2T%Q1=E)JI3:]<#+HXE3
M9=>O_1D<P88RK#;5V#&,7VF8L1;P.Z5Y7/IH%*=BBJ)0>%&V?UKU=@SUC4@M
MP*\W?&8K1!IN,@=NXRPK!P499;.G5FS'"%]1PIDF;-DMXKCX=0,ZF\]5(Z^N
M/!1QE+V>65%<Y,_3-"?4%G^)%)0%E&T?5.E=CS/$Y[?'5N\_W-WR&S.*4:95
M"HHURI9/I=2.L;U,;JG'KSS?K)9W2:2^'B(M"$4898.G46W'(&^U0PYOHP@4
M6)2=G50=I#'A]-D7.5/4T0ORDE" 479Z.N70QMY[T-A[;SGVHNSX5$HA85O$
MAK,>-;N+PONMG*1RF*4"X'LVF(AK5-WU_3UQY:=V:?N,_2"'75$4"CC.%4F=
M>KN&.@]"GC9%-.DLC+W89UNJ36)R!>I&*2@!.'<H@4JCN/>_DBCZCSAYBF^(
MER8Q"8JEOL[#KQ2!LH!XAFA0%X6"WY(H9RA1$0A*%7U 410*.>+9H4(]G-C+
M(JAY/?<4;[KH$%=)0(%'/$34*XL4GY81WN;PD9QXF5>V4(>_2@**/^*!HEY9
MM/AY>LPFGOM$?V;>* A%&S$45JH:"L@W2R^*JNRU.I ;!:$@(\:\2E5# ?ET
M2>@]&]0^T>0I6Y1W.W5@*P2@H"-&MFI5Q0'_>7./O+C_ID5>4AJ<G0 1=J62
M6&DWUIF\;\0S>U2!NJX\%'?4BY5J17>,O,CF5E\_B<:<LWV;+NC!+ 5E 66[
M"E4:9VZMW>373JU;Y:!X(VY,98KAW)G*[Z+0/XL23[LNWRH&Q1=Q%RI1"P7>
M(R_^1O.'S%]=T<0GA!^?I.O>!M@0 2N 4H*X/[6" L==L$E'+Q))IK7$T%JG
M@58.2@WF)4Z XDBKH'1ST8L$1ZMKGK:>ARG<DN?LB'WHFWY1!!"'\H.:40@,
M@X2FO[]MZ77!?C%NNE/Y\[=;:4\_3-Y,UFYQD?<T3I,H#+B*DU)^4E0P^?Y+
M[!5^]?_9/S/JW$OO!%=Y^N;>\QX*$R11EE:_V=AB^8O?UPV=S=<^_:NDV"YH
M4JB6XC#I_OVJBV;E RI&'9KEL/*N6D&ZW:$4FHPPP'4GHIP(H7RTBJ.E;]6#
M*V- H2HZ$?Q-9_ZN(_L?_ECRHQ?Q$7B:'7N4KMB4*-[G41,#%$?+ POB(.FB
MDB/\??;H-Y+QM]S*Z(.0I.JE=BFE%4)+'=N!*X#VZ R5+A^V_/<)LR;6UDN2
M&2G22Z&EF^W $41_=)+.8YX[,:$KUC8U*=NET-+0=B!!IA\ZZ%>4/'AA4#[[
MP<9<X9_;4DO-!4@8+6]M!XHLT$!G[C+)B'B',/%BRX$-((J6]K8#:V DT#D#
M]JMN/6CX@]LN,XVAK["V%P\!7A1:*ULHFI<EF1>)DGCC8_) :+:ZBOCC9G'
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
M+XB &38*0HEVR($$PP*].[*IG@\6Q8/RUV'Z[9A97)CQGW1!,QHA*%?N>)(
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
M;C>YRY"LJ<8Q(P"9/*1SJS5V9J0^CQ_R+!7:O0</T#(A%\=EH^6J2%2CXL[
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
MRN*QX).</TI0=+WB0ICXXWHU7O2^0)95B%?5J2:HM>S) 5%G'+H>>#J4L&*
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
MM,A2T\'1L-HJE7_A_\4SG;/?_']02P,$%     @ LH"L5%./$Z%X"   /TP
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
MU74T86Z2G@*QKRV3;#66Q.=W##[TV8J-2J5_;:S3@YL7P'V*C?5-+:OSM_6
M5)\7=5-V+ZWD*DKH/*^NE"LRXR/\E*+)$CU;:?@,'XU='@FILK2*O@#M!@&/
M(L9^L$L8"RJU"G<Y@-2-O ?V!3VN4/3#)SX0@/YSRO];S&$@.E#$H:./AWPX
M/ <MVH)_XQQ5I'!2E">=;3]A+4PI<Z!(/"F!!R\<SH#3DHQ#]K!QP>@=9@],
M(E?G#W0R6A^Y34^>/8$I<[+7/!*D,N/R>Q0D=:&V8IF ?)!5DQ0V5 %J%!*8
M7><Q%%A Q4% )0Q=CRB1\/>>UCOD* KE:L7&>EA6>XJU*(\BVV'R%H,G04.6
M@$^9UK[ R/JM@X2Z2V83S\.Y\.<,=_(AG21O4,A$+K-@YHLE@[N+J3 :F:X%
M!B#R'^0ZTB3)O]O#5_3;?A>'=QK?QCN-">#SZKL73=S!JF\85+_1):G52Z1>
MK==?]M#<V8M"[BP;/X273&:ZDL<^=>Y([?0<X.J37*;)9PW@X__>[7SUM_H7
M%54QHUE_H[E5Z5_L:R3<TZ"WI[!VGX?7"\?@RU;/8>44'];.5TYWRIEGX%G?
MF1/CXV\R-+G $KF1L'MU6?)RP(TY: 0:9:OH?DB5G:L2&,E_RF5RR9GO-L@-
M",0F-/ M9J&#%9MD.-.YPP:YIBHBY7(Z\[W^'RFJC6'\%X>Q$;LZF[$+!K;2
M0WG]LZF/UF/AMK#9$$#;T6A%$/>X_?IJ1*-CC6Q1YYI>V2]=$.EB:%7 %JE9
M<L:LH#6-Q5[/>FE5\!^ F?\(AO\X[&]02P,$%     @ LH"L5!))J6ED"
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
M;Z6^Y:_HDJ)#]#IR4="R169=L9DS]M.::/<&MZ[>HN>OU=7;]W\!4$L#!!0
M   ( +* K%3=IMI=@ 0  /T>   *    97@S,BTR+FAT;>U9:V_B.!3]CL1_
MN(O4JI4(KTYG=R"#%"!L(U'"0+J:?G03 ]Y)[-0QV[*_?J\3 O2A774%?4VK
MBH<?U^=>GQR?$//,.Q^TBP7SS+9Z^ [ZS_0<;V"WS6KVCKW55;?9<7N7,/$N
M!_;7TE1PU81Z+5;@L8@F,*0W,!81X>6LH0P3*MFTA!-QZNBI\UH0$3ECW% B
M;@(.7S=<":5$=+<MI%.,6FN!HK?*("&;\29(-INK4ON07R5QRZR.7AR)V7>'
MWO;RQI1$+%PV_PM .C9A?],,+T;JM.WO9T['\8J%DT:E858[N&,Z?/M%$_US
MD2@V7>XRU7S[7CXYGW)%Y8ZWL6N//:?O="W/<8?%@ML'[\R&[IEC]Z'O#*UA
MU[$&X/9QB#U^+=N\ETJ,+L:3"VN(C/9<J/\&%Y5)!;H5F-A=71NHGYS6WG4!
MK$FQ8/7<D6?W("\&>.Z[SGFUN<7"E]IG6)%_8HT[UM">&.[W@7T)5M?3/8U:
M[4/FWFAR#B\6?,$Y]143'&Z8FH.:4_BV(!(Y%2YA3&,A%8@I=(718V3&!:+P
M,:;#_0H<Z=&'87"]$*VNB&+"EX<R_78,&+ O9(1+&=]P:9E&CA&)"(#R@ 9P
M3J0_AY-ZN5AHU!J-,I $IBS$GC62"?47DBF&:1$>@'WKSPF?440312Q)-&K\
MUR,#HBC,J:1BBN#*T)&,<'P5-UB'[IS1*?09)]QG) 1W.F4^E3HO/7<%'7'H
M %=+O*:DKG49XH5,%H0K4"+7/BU]JX)IZ4M1DT#$"G%O#\\'Z2MHM<Z$R"O"
M:6*XMR%=@N6GE=574!G[B2KK>=&R6/C!Q0W684:;[Y1YCU]6GM49X"%K#P:3
MD=5UAK]_+=5*Z?>1U>OEWY]<@!L6J+D>6CMHP960 96&+\*0Q D"RC^54J=M
M>N.G+_"7IHM/PKQ@6.K2RK>;7N]_ ZY5&J>,[['L7N]5HCRJ'^\(XIY9[,UI
M!FY+Z!8ARJ:/@A)JT5H+F:37"R9IA(=UHB_ZC80<$=1*"?73H^!X+10;V5M+
MWDHMZE]./K6T&&Z7"%_&KX6^KY2OKQ36<ROM!UF>&]91XZVI&>-HUR*2ZA/:
M0T481V_#,I^U)76$:8L82YIH52OK$20,T4J@=]0N"SMBE+FDG$Z<KMT7Q@Q8
M&EU[.ARU"#-1%&@/TV63#,A=>U9YG,35U#6T/[S13^6-3FL'NZQY#SG;S%"=
MDR74T9#K6Y+=.J63G4+N+)O_"F^UF3F3KT+B_X!ZY13A)B)D01;R20E\^O5@
M[^PWG78UJ6;9;-W#F56G_7&(O0=8>V=0RIJ<0"EU/FCS]F'MG3;I;T2KV[D'
M/Q1IHS*2#!MC;-WTZW;+]\6"*\9G^?"?V:A@>K\8!I:(AD$31F1&6QC@>D&Y
MKR>VP(U3A]>$ 4D4&$9.B9[S1X[J7FZ?=6[WCK/._>,,$]M8I&U+=-\RW3T>
M'WJ=>Y[HX0&U48Y'].!NT?5.Z!EKMF^%WM0O9TG.$+.*M<C+LE7,JJYF5K%G
M(]'^C6U5/[[.GF?KQ][_ %!+ P04    " "R@*Q4=T(A2Z/M  #!M@D #
M &9O<FTQ,"UQ+FAT;>Q]:U?B2K/P=]?R/^3QG.>LV6L%)PEW9[;O0D"'40$!
MQYGYP@I) ]&08"XJ_/JWNI- @  !$F[FG/V,"DEW577=N[KZ^__[Z,G4&])T
M257^/6//F3,**8(J2DKGWS/3:,<R9__O\O3D>]> Y^!91?_WK&L8_8NO7]_?
MW\_?X^>JUOG*9K/9KQ_XF3/KH8L/S^<XAF&__KZ_JPM=U.-CDJ(;O"*@T4NR
MI+S,'Q]_.WJTI<G2Q*/X$V>2^->9H>%;<?R"^^'45^O+B4<-ST>3UJ.&\ZBD
MJPF.32^"PWIB],+'O&=9##-@B'Y?U>[&CQO>SX\?_6IHO**W5:W'&["&>*1D
MC.%B7,HU2$Q'PL1 \/=Y1WU;.DXF%F>=<6869Q)3_'6+UT<4%]$4N9TYX0MX
M@^.<!S74GCMLZBM\ZSQH&MK<![-?X=O1@WJLP_/]T<-M7F^1!^TO)J:'SS15
M1KKGT^2;B<=%0XL9@S[2O4&!K[_BK_$[3(QA8]R(?H)J*H8V\":*_>7$5+IF
MS (%'TX\E*\4?H^>PH++=Q15-R1!/Q?4'GF4B<,B$B%&O @_*?Q_WPW)D-'E
M]Z_63_BVAPR>P@/%T*LIO?U[EE<5 RE&K 'XG%&"]=>_9P;Z,+Y:LOX5O_?5
M'O;[?V(QZEI"LGA!U9'QC2KS/71!?8@?WZA2@?S29+BKYF/]OUSA)I>KP@\,
M'A6+^7T[GFMB?)LS>#8=/%<8+)&QWF(9=IW7DX4F E8&)."_H@)D'.2!/AHO
MEQ01?=RB09,!=9?*<@DVN<JX6=>XN1Y21/B?<2WSG6:;EW6TRE#7KJ$*JF"2
MD21=X.4JTB15O(;/].;#2FBSKC'SIJ:-AOR#>*VHB 7>0$WKZ[LZ\W$O,</[
MAW__76&*--/\#8N,=1'+P#"OY_#Q"N^G,(\5FFS35KX6,/#1*F-PS7J7UY#>
MY)K$UEB#Z.2S5<8I8%BJ]ECQ&9 V&SS;K)H::B;<H_3ADU7&2#?KKVVCR31!
M@5HC\,)HA)8J#BC=&,CHW[,V*( +BF7Z!M60>@!H&;U3-;7'*[3U 0VS:%*;
MJ!I1>G/>$R6]+_.#"TI1%42^E#XNL,Y &E9&Y"])%)%"5!/^$QXL Z]JDF!I
MG0^CAFW$M:;VL*!BM<JPAFK]'B<F2@'48"HD77B*XMGE6!:_?YV88I-9+7/Y
M[QF8V(N6"K:"5XB,NN&9$.&S2_)]@"",)YHKX&>7#VPH,\X3_[/+6(SEX.$%
MLUYKO( =#7LXVS)?W//:"]BAEHSJ2# UR9"0;D]S-@%A3J^TW5!)XK]GP-"<
MA$4!/+7X&64JDO4LR!F82_U"D60P7YH) #J0.6#X *W21QKX1DKG#H&;4Y,Z
M7:/2?M113M>1-W"L1849X-+)D(&[D_B6)&,Q6$"Z.="Q3/#084\"?_,D&=V\
MJ1LJL(,O&.<L+\N&O;PCZ,JJ(JQ!1"X; A%[/<G $J[G%!&3%("%8 TD9"7:
M)9B=@S:/:@DV<-"J$$ @6#^Q;JC"RR]>-M%JU$KM#*2Y5$H'#M(-+REWJJY7
ME )8:U67\#.5-E%M.GOF91M8RS98OWF1CHL')Z38ZR= 5I0:ZH& @I.#V0U
M%"!8L>!=P'?^80YNN;<&<R8X?B P8Y7'ZUVB!XL??:3H:$W(LL&KFE X-1OP
MJE?Y 5&&#94LM89* !3X]D9)^:E*BO$+O@1N\%YP3Z=K$N!X/'@5X(!8Y26Q
M/.W0K !:*K$3T)8N<CP5O%]34@1P91K\!](W)EL8*^H+.A^4RX2B8"I:E=<,
M^X^2\@9"H6J#>_4-B0VUJJG@D!F#JLPK!C@519"C?F_&#?.-0SIXMIP* 2HM
M W03$DM*\4/H\J#4KU5MCE>Y+A+!,PGQ0;JJ#-&XCFD\#=ND+]*T7VN"W7J#
MY9$@4)MT9^Y1KX6TT7->7\ZB%;RS3*8KZ;J)Q *$D4K'BH>)LT6^J_3Q6WKQ
M VF"I"-QD>".Q38<_ ,TX-O"OX8L9B_RF@*CZW,P"\$!6(19Q>AB(':WDMG@
M;<S"E<09PRM0+!!S];"C1O9N;C3PCW9(A003?'2^'2KXX^H$$WQ,",;9,M=W
M.UX[-O@0?#/<>CU560@PMU< YT21A"2\C'VNDI+G^Y+!R_. #TE2EAOT<)EH
M9WX*$Z*?DN"VK-U]V^D9SS$<_ -,Z&P+?Y\:/<"T3Q@6:TOK&T+Z=3M4\+G*
MB>!CP.6F8EMK%WP,M1ENR^QV,OC08!. 5[/;R9 DQ4\@'B(3)3<P<,NWD5U>
MAZX9S7M)D7IF;PXH."4[O6TR)R/TJ*.V*=]);8"P&O^S^J;S-4!BH#OI#2=O
M#%[I8&I:&>6<()@]4^8-).9Z*M!Y2)24+Y>JI #( M+U&M(1KPE= +J WI"L
M$K"]$4^F@C>R >$WG0-:#[],\$Y42/CAS"0V3 ;*=31$]F[F6)9D=M\7;1;B
MX.P%R>E>\Y)FY6#:HSTM W[3)9%D0%6EH;J,@B\!&HUY/]X] V;#^_$P_I2"
M&SU<4OJFH=]A1F2]ERO%!)S0WDODN7G([V#EGWA- ZV]L% A_&4/,-K>4\SG
MK3D;O.?K[&5(2!]!4I!T058QY#M>Z.#D>Y_0G;NZP?O^7G5XOHQF:&O*!6]B
M=X=D?!Z2P3M'ELO@EV>WMYS!B^B.,9VWIO'@ MW G(VM+7/0-6![B?P\O1P/
MSNH&XV]L;]EWX&!O%_.Y:QZ\+5[#]=C:0B>"M\K[@.Z\U0TA@[RP-GZ54N4T
M$SQPWBGZ'!:T#J'JU6#\B%WUF'OG-='>MKDA$EE2K*S_NL5QZ:1[C]<Z2[4-
MY/25L'M"N!X,B;DW4$D=Y.Q8535)\*Z?]87YU)I6MX?])LB3+_%1H)%PK4^!
MU+Y2H/C1ERSC$P"'9_:2PSU0#(7-4TRHB]Q:OLBM.13XA71 -CSV3G'[RM[7
MJM9&$JE3WYB])XK"]X>]/5 ,A[W#U6$;L'<9;Q]B#I^D2*@<G]D[CK?V6TN*
M#E,3OB&%I(TNKZSLQWA6%<*XDF#8>Z^/@+M>JS]ZNY@99C>6("#2;,0V&]..
M#=>,A$*_D<1MA;O8U&%QETM#[YBU]D]K@>ZVJ#1#14*;Q37]BU1T)AZH#B(9
MG/5M]0C-+<1;F>G#T9LOLS_L-T0^./.<2>R?0SJ?T5WQR?H(!^J;!L;L6PJ]
M,M,'W(/D^" <4T^*A,C^AZ3G7=9Q;80GZC#WA_VW%)IEDH&KN[#8/_S0+!->
MMC$GRZJ "]:\>6-1FX'Y'ASQV]S#X-+0.?Y;-OAC0G=(UQ&:<\+7:0%0,!'N
MC-3H:FBEQB/9$(XDK +PM6IJJ\$;\):?7V!S;0-I:T&\7B,<_.&X7QE&@%16
M(T5 NO4$[H1YH9,6IS T1?J67L#ZPRR"*G[$.+O9X/F'#BZZ]37N&?GOF2[U
M^C*R^BK:4TT.;DVG Z;.;/ 8:?YV82-.D%P@\D[_1^<U1-JEC3X=?2Z)^)NV
MA#2*H((\^X?F2[>3K=6F7QY/]]5S/GNV/E'PLU#H!J\1W78Y1L<9:?S=S&O(
MZD-V.<9[/+TX\8KS^00 SH<V2>?3><Q@R1C+'1AMK1:YQN48@=$4]C=!$^D
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
MW\CV^;-]$>/L$^/LG\59RCB1[=FG?-+>,M!\DT5(B&-K(#XI&CB>'<LY[+,
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
MPWA@.#$].E1'4]^-+F5_?0X((4I$;4DAIV-T+.EX<X-COLT#CWS-?G,>6_J
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
M/DCE4#F1S;MNWVQT!I72^^O?MYOD=#@R%?*, QZOP,$#HGM>$[I4G+6N8 P
MKW"I$L=485D.4^56_S$L?>@_B]I+T%0I( 'U6DAS",,&01AW+FF$$5-L(E./
M=7B^'XOE=!W$(M?"5[\*1E.Z.EO,M!MDDZ;@M&9VL/1>$8^(U I7O5??_9R&
MY_+SH-> ^P2-]QIR,VN8-S4-V&N\E R[SF+.RR_/ FE/2/'10FZPD G70N(&
MM3E%Q#]P.? ;+^-@)F?D>4W#5YJ3C!0L+%=J]OM,GVGV^%Q^>)NZ;@ZKC[^8
MVS\/B'F/AR/!COJQ? 26N VVS4OA')0'?^!VN[B(6<"_H#%"TV2SA^'^.T<O
M3S[&>D[VOW,&95-3C]L+Z'W%KKT2%[X68MY-N[-73\^]:1>G^F"!$/EM=./N
M8[UP=IE-TPF.I=/QK,=UN]ZH>A+&FU./B>1LC.4"(7DF0Z>8- A!(CB2>PM]
MW"7T5F<<[!"/2V1MU>HMZ@_=VQ^=%^$F^R$&J-^]Y'L6M3&PE*2\(=T@+K?N
MJNU=2^].Q!LQ&"XF?<2ZDB@B> 1(QDD?+4UFF&3<<\MLH:J.[8O-6,S_"]@@
M7*YGL<:GN937M=Z;FS?&[:<( G"BH=? U04!!U3+R%C(ZK7&H_8X: GM;&9[
M5FT630=P2AM!3E,*,G;+,8O(&:YM KN42G$TZ+$->>9@2!>8M'$,G8EG:3;#
MA2)N69>XE4!!*X:J#0 W;_$R>^\U@T\JFI$(U9*<78Y@V>VZNTD2KH@DZ"S#
MTDPR?: 2LI12P4D$S8".9E/+_=QU!.+:)1!5#?5Y22Q^])&B(W V29GL1/3L
M+2>5^G7CMGC[GBIG=VF&;/@I9"%@G1!52:FOL-58?#'K^"!SN+(''DTZ0R>S
MF0.5O74)&*!(QH%7$XGE<="F&0_2%1XPO%-Y906_\&?AN7Q_]_[\,Y4,P7!-
M9%C]B2;&P^4=^LC=+@Z\5TDJ+^*]5<;QQ9M+%RQ<T4XGP5HP2]G2<R7]TNRS
M+U9@:B2\Q?)6+)EY.7&L1!HC+6+86@34R3 A<\UA^F&8^?&S_/[RMHXV6=F\
M<W-T2$,U>'FO+/DV;3:7)$8GG3U4CWF+]IEEDS3+9FDNFPS%0A<GG&:U#[(P
MJ,J\8H NP<G9/L[Z65$EZS+.EC1I4KD\S.2[J+'.3L1FZ4D'6.(9(P?2/<C5
M+*)BR+D:4$H<G4D>:JIF9<H%F!C-QN,TQX:3&'5G:NR[/Y3.'>)U5,-DJ;0?
MP?7'*L53R(2G5[/ZJUUY>^OL,B(= 0Y_ ^36BL;4=LR$/X@%VRWS+"1LN'*7
M OIFXELW9GYW4M+)T'=2O/D^[>+[&U45WR59]F3QY$"NO-^^_;DI"R$G)QTP
M=LNK#A0A^UG E0S$]BQ[H/9@(9F"T_T).LVDZ R[:0YI>5:RI!B\TI$@+K,\
M2+!KQ0]!-C&;+A20[',Z^W EW%:2Z5W:@#'\=LRR!^Z6'YJ&[':E:2:3@9#F
M4/VNM4D87!8R3;-9?RF$=62PX)+!&N+EHHY+B$NCJ@;]IRHIQB_X#1_T])3
MA]_Q0:JC#K6UBJXV"W7&@%*20CUC6*DW"]C=,LYR6H9<.)6)TREVT]3U@5$O
MP* '[\9E-PX7E\N<YQY\656$4<YN5N!:/WO7O=+#?:K&AVORHBV %8LGQ@L7
M;0 <]E(=;/H_.9/^QSK$G?>WE(@4[[9UO6/\?%ZGJ,SOYB&'6P%,ZX[%J?_)
ME/_"@=?@1_(>):HF<(&O<MX51UDA21YRB)MF:3;)TIG$\NSXG%5;5U,<Z]H$
MYUZD&)J)@PGV4?^VUMIXJX:\2S7<27Q+DDE];4X1ZX8JO'15&:BI6RW8MW\6
MR@LG%Y1D,T-WP6G?.$TV.(S0*^J.]>!-UILG=G:,2A[#L(]$W"]H_!>;5_D!
M]GL\RXGN\D-5:32'&C(?R^FGEX?:?I29]RV8UR3\C+%8VVV<I%WH17LL.(R)
M3<M ]YM<@1E2?% IR82S-7D]*4::B<19!>DM2;_9WJ-^GY&[5\];SXC9H([*
M8VFGEF;'=2'S*!CVOG^*Q;O7AUH$NQK9 I.K.)U)9NE4,ISC&?FYF_X.GH.%
MXO5L\)6>.*P_-=8YL!':MK_CN@SV1.06DS9DN<N U&6W;L5\[ONSS*[V_9GI
M[$Q.@/!%ES!Q\%WKL%JP-KAUBR22U5,5?S)QU<Z_"O5RM?&>VKK)&0..>6H,
MN=N9WQ.96)/F89^28E)).KG],ID])&I@)BQ)IU-I.LZ$<WK#[1PV^ _D*\!*
MIAMEKO8P9/+L;DL5!+6'* .#O6&0%1 #>5 P;(G+).)T,KNI?[/O! OP+!0'
M?C23":<0R.T08N6!QWZ2C&[>U$$8D.;/!%[_T+MWO]6_G<XZU: A'(<JH#;2
M\/66&GI#BKF+S5"_#A&[K*7$&IMR,PY3M!UI]7CQP>$A[S\DF>UN2J879IFG
M#B;9\@R"/;RMMLE/WE":P_CCR\]?KYW'KB#MSP&E+>:K%W/5MC,KV!QP#)W:
M^/#-GA,L.*'CP.%(T\ED.(5\G+>(C<L<MK>7<Z>"$!E(ZT6[.8%LT G$2$P&
M&A,E8FYGR-&9Y>'KV^_F\/?3]2^933_>#K:B-/<_YLA7"K\OO"D9^M9.)D&G
M?91C[)>^7)5@019A0@2_^9F]Y1O?CJ-N<2G@ZE:@TVV#IB5L4(E7>W_,6^-C
MG0,(FV7>1A$&"-8X_[Q;N[J$F.$*69+.I#)TFCO4_9YUB!=<J2+-<>$U/)E_
MU',4_/@U:LS]KQK_TLLRQLM>;@#MY;[/MNP<ET[2J?36,VM^,QU<=D=;/[D-
MMG[\"D:]6$YI:O;VMQK&+M :*3 _6T/'F^E9?YG#KHK(9D#9^S@>%*7LPEC(
MP"QV@DZE<,>8Y3N'@:7R$LOR#-/9/$LUC;)X^B^MQR3C[6%]G=JH8 XO+4[M
MR8O2%\?'VYZ+&'(HS- )-D7'D\L+1"(%M.(B!9FOS*98.N6C#WQ@RB7EK5RF
M3C!9F@0T2JY>'"8&J>;P^NXC<?>KUFD4M^OV+%$DGTQ]A.RTQ.E$/$TSR<AK
M"6AI@JL.2-+))&[GO455D9FH&>CU).N0.+X\PW'.!&FZ8\%88ZBI[ETJ?_LG
MWY=W>+[)!;AU1XP;=.H+.4S-<O^$'!(GF-5#XHFQ14GOR_S@@H*51_9U7+ZN
MRB.A]=(IMY@=2+"'1HKENX&+#O<%NQ7HB^?KT1F^$,_P534[@TS(['%5%BC
M0>EO<_BC71HD?KUE#65K&X,D'43FP&V2^@ZD%#G525/_.[[U%N.5G<B83>)5
MY;6*1BZ[% F*5:35N[P&J *BDM@4QE<X&B^YY]OV]:_" )U1AF1@T!:"T><U
MZHU<LW0Y#1"[$4#.[8EB[L'D,C>MF^[J "WKF.X#I "\M%+Y>M(%J)*1]1 !
M7,U7F0\@<\XP7DW?9CZP53'Y8?'V:!V^4=.,$9_+&-:\.=/HJIHT1*('APZJ
M?/S^YB,[O./], 1%4SH9E.)'H\ZR:G$MB&P6?37^OJ6>WWZ\Q#>!: 56F(8I
M<!Y=AS]] ;4)7SI D0XA<PKR?/#E#.UG^3.YA!M*NFYZ\J8^:#\^%6X0,CO^
ME)4-C$0&G&7+Q!) *J:A&^ )@^'P@";WN]SY^?A<+63%E:!1QZ/.@E18F3:V
ME#R]_Y8_DH5$LAH,;>9;EX6TL:%1?Q1J\C"5+!=6@V:2-BN+AT6=/9)7%Y7V
M"*H%9 I"@P1/IB"@\J7/5M-X"_2?)5;6;4!CY"@>6+Q-3=ZV31Z:N6J:IF"8
M/H)IWY"\;C#B.]!,A;X-'1[LZ1UMH<>G<CZJLBS*236>^MFKUY_#M6K&5VF?
M;,$S-Y9)>(.^0B!SGV,>M$SMQ[68<BEX]Z0+(I?\^M/;]N5!4E.OZ*;UG'SV
M,?V2 Q!+ =AAD+(N=#N-4!8%)P7OM?<1F=2ZV0>S;R1KU?:<-?<1B<P16A]A
M2.:MRR9[KW'N35AA>K^+NR<QQZH0!6&862O<6"?D6#7:F$%O;JA1ZWVTNX-6
MJU9:O-CSW.>K1;,NCBMNC/)/_L^;4.G'%\^]@K,\!_%]X;)MN,GQ.)W-X,/M
M7M6XB[D,.V@K+?#<*$UXN'LNOR:>VH:\'E^Q:_"5/;=<Z&1R3X,XJV5VPE?A
MAQ8K\U40( %?9=@LG4EY%9GZTE[[$2L$5.\[[0F'NPUO"?6!EM?[(E5P792
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
M<3^GX+HXA=WH+)/>40.G_%@H\!EI\*;O8*U<S4]<UN;I^0.5Q*K>?M]I:S^
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
ML!NL0-BRD\JP=)S;^D59@<K.VB[52':^DO,E\/OIR?>^VR>P&)-J2#UP(<O
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
M!=UH6IA&4MKD#U,'J'7$DX-KLO1JPJPM"? >D'<$O D"89*@(81S9C29B.^
MG31EH C$Q7R_+T/L1 YEG..%P094L6=ZEXPNP5GG(:*#>553LVGS#E#R T),
M-^$@Z)'Z.,RFVF![*17?I.E> DW'FZ7P5CN&#35)Z%$RWZ+T@0[Q.5#JO2L)
MW=,3&)\T+\3!/:]3+K:X+WQ0!?0F"<A9[G/J"5&\!O^3==59>IP>X'%>"<(P
MFK)V?$ETA;\ ?K.BU&J^1A B'\J\@?-54TP(W'9Z@I_KJCTT\[ # TRK@_@
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
M+\"X;-V10FI"P]-6T7\/<PS1^)A5$=:\ "PNJR=9):&+U0%F-=R9SA(#0=+
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
M\..C?6M_,4'^'P,,L?_L8]"JTU#8\QML+QT$[MW](P/P_IW T$Y\X][I*MI
MPG3V%&T$X:"EF/9S.[@:V6#-G>H:&BQN%H7QBIKN<YD%P9I[@@V72GM :?M[
M6!ZC=2AV&0H6#)V=?4<V7H5#.B:S;QOL:)Q0>F]#C2 H)C4Q$KL9H\2,GH&,
M4:/0 A/X0N T/.OF&A"^>CBX;[0UN" D?S^ FR4<''<T45)H6 PH9W@]Q+#H
MJ&Q*,HY3W7$X<$/"@^']XZ$S%1L\!Z/GL"?" '0.D[\[0*8"A')7%TVE<QF)
M1V'INTQF[)2/P,;Y('Q%SUD&_:0V/+[H=\SN\<=5YV.K3DLRX_V]!VCPON7U
M&M_G</3 ]"@KK0DK[$>]Z*Y%M%F# 2OF5*V,/H;5E> L(_E%PLX<@J%C7[4+
M!W#L1O.(KC\'EU+ 7TEA"[:4Z&S5=*AL(25^$F[64I?,OB2IKHXPA.H7UW$
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
M@;A9J+)-%<D.@;A#(*X*@9B>$8$XUJ=]F0C$\Z]442]VORZ*K?@1B.,]T>=
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
M6+!]+XEN3O)R07]*6LVZ[8951C97@JM+2&550FN/)SZ&59F)7SITR/'P1X\
M3[+)1#)"P>UZH$[<*>"(%ZX,1JQ+#:VE(C. M 7?E.!_!)M-P<16TUEG2A_8
M1=M/6RN02S&JRE-1W-F2J,G7-5'VWP87J=3U^>N _VB, 0-BEN4\.(, SNI(
MVVE,'(N^<XVZUV8GJEX:BF#4WJ\;@;0_T<.$ ^'8?R>4U.=C_5EZ$DIA!\(Q
MKB <.PT6V@,OG\S$W -OEIK%IVOMBC]+5F_[N2WQM7T#)1(J25_8WOW^[W\.
M#KBJ+"GBO]RMT$++>"]]6A):>O00_A?IS8*$SAT<,.46Y5ZXI<-:06W=B!1R
M.&J=RI6,YB#Z!<?!A@2MDF\[9?^L"H/_>_Q1M^"8R'YQD#'[EROI:"\V?G'7
MR(@3L5YK($">=__J'_8S^).CMDQE__L'"=I/YKHD?!S4)62[T<.[>,W<RD=$
M;,<X-A^I6R&ZWJ>[!P6C)0-R:<D2PZ:EL:4OOG3W6-#!2S!N)1US_075ZKIS
MRH&_J0T_AT;I[JR8O>'?-Z]_GUV'FP^LPZW4AE>GEG*;_4@6ZJD?OYDH."0+
M#@MC5Y(;?TGNJ,(!9WZCI(H56<%5L6'IK:QON>U43ZP-S]Y;2NK\\[1O%+;D
MV/4MI8580VW(BF3@D$&%Q11,3<<LX/ )\HFT#G3R0)]9P+UN:D .W[ 4P91P
MT[D&_JY(Q,A);'N@Z(,S0- T1>:DQ_;W_/)CWRL?5JP-<VW]V#+?>X56(TH^
M[,@6-=58+L02K7..+%)ONJB-J,8=HJDJ-2.64TZLWG3:V?&^[>P>NYWRL%3]
M4D]B+P^.7-,Z_5R7+[URS0\2_*G=&OSU8_>&SZZL4'8&Z<5<:[T>RKYNY>V[
ME5E]M?SZ6I8M-!8SYAE]7G_-G+UUA+VOUVC\VQ6Z XUKR3Q3&UI'NM0, X6,
M9_GWGFJ6^VGGACS^\F":= QG44 C@WL$-+0$I)-UJ:OIR'V,F-",>),8(1$[
M71_9*1XX4]FZ9[T6?C7!)_)\)I$M9F<MY9F!VV"WH(NJS,HG"L5"HIA?_&HN
MC$!^?4WM>HUF(??MOIVF[#3+.HIAO4;C?QI7G+[9SUBVDEA":P77'!: 96Z:
M.(6"$R5N6M+:L%PRLWKU\OI6EV<XK,.V&1L()Y"1D(R8D2")LT7+-J3C]%02
MBOEX]!(TD[?]^)U.)XKI;"*;GX6H>4D$O8N4YZRGD[\T4X5$+I=*% J3SZA9
M]IJ[R,9WZC1'.3;UDMWFLS94+GJR==K[>I$6Z"('H#OP^.2>Q$G-IM3 U4BD
M[2II>8IVJ-/(5!6YN_O'C6X^/X'3?;857(I9R.>SB6)RZRAK-F$IX[5(?"*=
M+B8*,S!B3,GUXE@I?I*5NFD&B:8VE#Y;5>W\3)/;[7B=@JD11&1PSNV;UNFB
M,8?<N*T*(#:%CL])UC'E:B['@<F@()]/9/+3&ZLUY7S9K/6,UURE 4R:2N13
MF\"^LL:QVGJ-QO^<.'(B1W:GCAUW!A7!5;/#L\L;O509-O\TE9BC1'*U'VS'
MIY3@6.IMNE#&5P0+M:"/]Y5;MN^2A^EY0Y;U%5@\)LHKKM0LM;B3]T0Y!/U'
MS3+9%MGC:^FM7C*&YBQ^TI@EJTST:I:VN$& 23K$96Z)R4[SVFR)6:2VD'TQ
MV0V+&:Q?K V/'C-&OO+R\%7=[@9#6X+-JVKZ_EZDZMT$U]5,%"C+@J(,2.@%
MV2,#.0ZZ;,H2+M,9;>!5<=G0$OHM^]F]_:MC@F07">L@Q'68KV$<K5KJ0/L7
M_PH:X>1/H5I_'9Z4VG8%C?,*CJ+E1:Z)7D*C1_P6&')P$#EI?\<RH:4$9GPB
ME><3Z:2?$<5J34JSO7("K6 X5YA\76H(* *'SV6D-#1MV-<L1>3:0@_*[R25
M$Y!0#IA4#KEJQ.)P?HW4:YR0TVH_/EU>B?V<O!7J%7.B/9%.)1/%I!\-D(]R
M[>]-UBXNFG(]P#.BBMO+4["_%T94@&:KL0$36+C0[>K:%Y*#*2'U'-7#5.QZ
MV%6S:LZ?D\M!]C.*HN-/2S8'\%A-E:#UH)<:"/T!3?8>DOMV*_O!\.&A<7W[
M>%_<"HT>Y\YB?$!CDX^HZP=9F_XGYV=1#X-M*3J)%9@\N>D$D37P(.C]"MRF
MA*M3;BFGYO2*1%M;,B5Z-I.O5:G?XWOBEBN19^)S&<M,-A=0HDU-);MS,[7]
MO:Z%K))@2$&:9+8%$TB$\630)*$1MH66CEBL1EN6>J0[-OP0!:2"K()R2NC7
MJF0<;JE+Z^^O+[ZJL"(;#46#3LXW359?)8F@C))J8&TLP=JV\)(81P/G.[?"
M #XKH<47@VH1W<2I,;^I-C1/+N\>W]L?[2&_)4&;7=98""QK3->&QS?6H'A]
M\RXTH=0(]M0!%A/GEN5W+6[<DLD1*C:\N/M[9Y@2$ *+6T50C6_)Q[8ED\/%
MG&4-&4.AI6KH\0WT9;2^AURI0YQZ#%M!AYT C@;R?K+<I::V.&C"S7D5@?L)
M)R88BE3RE_=/^$/^U]\<.H EO2<!&H836BU=:D'YIT]0>N0A!+&]S[+0E4U!
M(8[ '7F8B,+CJF4B0WYF&!;P>D 7\X:/BP9# =8"+P/I0U][:&N6@69:E9LF
M"I%@AC!!>Q+P0YL M%(X%OY42B>FTYZD9$]%Q5>.;B>#>!UTXN)D:JDIY^I+
M-S7"?3O5#.?RS+!?%N:;[>\%N&$RS ?J2VW?JP4^''Q/@(/60"\3)1)\>I6+
MA+".X.G7A9X@*_B)$+/*5%SD*21;-Z*^?<$84T,W:]-$)R'(1V#7T$1()38N
MM)0G,,6%:JMUUCU_KAH?0O[=UM;K !TE$E-&139)91<EE_72[%0B6<PF4CF_
MZP 2=: PPIL!^5ZQP99,SN/IW! 4Y[?T<!9)R^%O,K#0J<A+:&_U)A'0\KX,
M';,^'$5P%RUQ4#CZ[+736Q+!^?>]Q^W;T;<,"E/F!"H03K1T_+TH=UDK8MI8
M"JE&]9TWLZ^MT]?S?!12#:)7'-.KC>#/V%6J^U4R4\?(-OR[LG7[=781$D57
M<L=?DMZ0#>0^HQ-B(EKX>\NJ*L@ZH1O<R2E,3G=21Y Q^RRC ;4$A;N4FQ+W
M\U42=./O365."*_A3>>0A79!DR&:F$C//5]I=@PEXOZ=8V8."*G5=8F!6.1
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
M@C[I:**D0%-P.C)ZSM-!Q6&RUW%5MUIE2\;^'M*PT?:#:.UUB?02&W70THM
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
MO;FL7MT.LY>0Z[HVFN]]J?AQO0KL;P#\9BSB7O>H<8H56$@FNYA.9(O910.
MRU-J8,627%=L'K4;'AMOM[W+LEI8!&QHW6&_TPEOT\"^N>G5Y$Q]Z&NP.XPQ
M37EJMV_2A>OBE;Q@N*_'0D^/ =[V:]H(:[="A'%L%[<S*"\%Q+ETUC(*4N:B
M*]P]S7*7.V6;R.G <:$/V]0F@A$7:A'ZF<OD$YG4Y +YY70.K-2&<B%I=BJ-
MZO-[85N2%8LG<BQKG8YL8CTIJ2+I4M62U(8L16AIXK[$F>Y! )\VS^XR;\6&
MN"T<8@[18XH1/8[R/)9J0_Y*',J=JW*RD/[QFW-)#;/?>>2V_?R/2&3_R;;N
MR]L_U4O9E%L"01QM]72WFO+#55Z_OP?I1F3=#&R.[;W+";IL0*8'-S%K*(*,
M^Z49Z) V\'9/<(JM"PFN*:L2[:?6E5364P+]EX:Q&(9FZ0U*D0"-TG1(:O;;
M$K(M)B<;T""E#N<D:XSBXL]L"P97AU8U-KLGZW@B8/0ST(*B+Z#'"H:FHH<,
MT'EAHD,?LWI>2BWD4!%"$S<]*)JK*A&'!-.#C@M@?P\&2WD1,1,B^_WWXC79
MDLEYR&R1QE%T(M(6 3F)34D5H?D2THPF]/\A;2$!TFM(#<92@3:! 9V*L-8
MB2;:%'#N897%2?6FK"!5J0^X!@H9T!\YW-R]K2DB-!,B1"+.*/"F@BV&'^#N
MX8.V0\=26ABRU$3>*^'0[<@&B@QP^A7ZCN(>&R2C#VV.U(9.;J0QT:U,6G'
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
MA\IG)!'DD-$\#TFWP\*,M=W!'H^@V+U*B&SZI$@>A.D6'&20NH0BQX&IN)8
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
M:0*W@^X))1##"3]2FG0I2=,6@*$4@9^"5CT ;VE:ZL+@Z&W@1!#Y_C1.2E8
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
M952.$_B7_P=02P$"% ,4    " "R@*Q4L8 Q&^H-  !8D   $0
M    @ $     8V]D>"TR,#(R,#,S,2YX<V102P$"% ,4    " "R@*Q42_F^
MJ%\2  !6X@  %0              @ $9#@  8V]D>"TR,#(R,#,S,5]C86PN
M>&UL4$L! A0#%     @ LH"L5,N*>>.V'   0KT! !4              ( !
MJR   &-O9'@M,C R,C S,S%?9&5F+GAM;%!+ 0(4 Q0    ( +* K%242,@0
M$%H   .'!0 5              "  90]  !C;V1X+3(P,C(P,S,Q7VQA8BYX
M;6Q02P$"% ,4    " "R@*Q4I$A0%_HZ   P!@0 %0              @ '7
MEP  8V]D>"TR,#(R,#,S,5]P<F4N>&UL4$L! A0#%     @ LH"L5%./$Z%X
M"   /TP   H              ( !!-,  &5X,S$M,2YH=&U02P$"% ,4
M" "R@*Q4$DFI:60(  "N20  "@              @ &DVP  97@S,2TR+FAT
M;5!+ 0(4 Q0    ( +* K%2'U;#+BP0  (0?   *              "  3#D
M  !E>#,R+3$N:'1M4$L! A0#%     @ LH"L5-VFVEV !   _1X   H
M         ( !X^@  &5X,S(M,BYH=&U02P$"% ,4    " "R@*Q4=T(A2Z/M
M  #!M@D #               @ &+[0  9F]R;3$P+7$N:'1M4$L%!@     *
-  H 90(  %C; 0    $!

end
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
